Ubuntu 18.04 kann nach dem Ruhezustand nicht fortgesetzt werden

17

Der Ruhezustand funktionierte ordnungsgemäß, als ich Ubuntu 17.04 verwendet hatte. Nach dem Upgrade auf 17.10 konnte ich wegen eines schwarzen Bildschirms nach dem Fortsetzen nicht weitermachen ( dieser Fehler ).

Wenn ich nach dem Upgrade auf 18.04 versuche, meinen Computer nach dem Ruhezustand zu starten, wird er so gestartet, als ob kein Ruhezustand stattgefunden hätte.

Kamil
quelle
Ich habe das gleiche Problem mit 18.04. Ich denke, die Lösung muss darin bestehen, die richtige Partition für den Lebenslauf anzugeben, konnte aber immer noch keinen Weg finden, dies zu tun. Alles, was ich gefunden habe, hat bei mir nicht funktioniert.
user2819650
Die Partition ist in /etc/initramfs-tools/conf.d/resume für meinen Swap korrekt eingestellt. Ich vermute, dass entweder der Ruhezustand nicht korrekt ausgeführt wird oder der Neustart nicht funktioniert. Aber ich weiß nicht, wie ich es weiter debuggen soll. Syslog und dmesg geben keine Hinweise auf das Problem.
Kamil,

Antworten:

29

Es wurden Änderungen an den Standardeinstellungen im Vergleich zum vorherigen LTS (16.04) vorgenommen. In meinem Fall hat der Ruhezustand nicht funktioniert, bis ich mehrere Schritte ausgeführt habe. Unter anderem habe ich die Größe der Auslagerungsdatei erhöht, sie aktiviert und sichergestellt, dass Richtlinien dies zulassen.

Dies ist wahrscheinlich die längste Antwort für StackExchange. Daher habe ich versucht, die Überschriften beschreibend zu gestalten .

Stiefel, da es keinen Winterschlaf gab

Es wäre ratsam, einen Blick auf Ihre Protokolle zu werfen ( dmesgkönnte helfen) und festzustellen, ob etwas vorhanden ist. Es gibt Gründe, aus denen das System trotz Aufforderung zum Ruhezustand nicht in den Ruhezustand versetzt wird oder stattdessen in den Ruhezustand versetzt wird (Ruhezustand).

Es würde auch nicht schaden, Nachrichten im Zusammenhang mit dem Ruhezustand zu lesen kern.logund danach zu syslogsuchen. Abschnitte, die mit "Problem" beginnen, können bei bestimmten Problemen hilfreich sein.

Swap-Datei oder Swap-Partition

Eine der wichtigsten Änderungen ist, dass Sie jetzt KEINE Swap-Partition haben, sondern eine Swap-Datei.

Die Auslagerungsdatei funktioniert möglicherweise nicht für Ihre Mischung aus Hardware / Treiber / Betriebssystem und Ruhezustand.

Ruhezustand ausgeschaltet

Richtlinien können auch den Ruhezustand deaktivieren oder nicht zulassen.

Jargon

Anhalten im RAM - RAM speichert die Daten, der Computer geht schneller in den Energiesparmodus, verbraucht im angehaltenen Zustand mehr Energie und wacht schneller auf. Manche nennen das Schlaf.

Auf Festplatte anhalten - auch Ruhezustand genannt. Der Arbeitsspeicher wird zum Auslagern (Partition oder Datei) gespeichert, der Computer geht langsamer in den Ruhezustand, verbraucht im Ruhezustand weniger Energie und wacht langsamer auf.

Suspend-to-RAM unter Linux von Rafael J. Wysocki und A. Leonard Brown

Voraussetzungen - Haben Sie genügend Platz?

Um in den Ruhezustand zu wechseln, müssen Sie (Vereinfachung hier) Ihren gesamten Arbeitsspeicher auf Ihrer Festplatte speichern. Sie müssen also genügend Platz dafür zur Verfügung stellen. Wenn Sie dies nicht tun, wird dies fehlschlagen und Sie werden nicht in den Ruhezustand versetzt.

  1. free -m wird Ihnen sagen, wie viel Speicher Sie haben, verwenden und wie viel in Ihrem Swap ist.
  2. df -h Hier erfahren Sie, wie viel Speicherplatz auf jedem Einhängepunkt vorhanden ist und wie viel Speicherplatz belegt, frei usw. ist. Dies ist wichtig, da Sie möglicherweise später angeben möchten, wo sich Ihre Auslagerungsdatei befindet oder welche Partition "zugeschnitten" werden soll genug platz für deinen austausch.
  3. cat fstabsollte Ihnen Informationen geben, wenn Sie eine Swap-Partition oder -Datei haben. Laut Ubuntu Hibernation swapfilefunktionieren FAQs möglicherweise nicht immer mit jeder Kombination von Hardware / Treibern.

Wenn Sie nicht über genügend Speicherplatz verfügen, lesen Sie die häufig gestellten Fragen zu Ubuntu Swap . Hier erfahren Sie, wie Sie die Auslagerungsdatei vergrößern, eine weitere hinzufügen, prüfen, ob sie verwendet wird usw. Mit Befehlen und Erklärungen. Wirklich schöne Ressource.

Ich habe nicht genug Platz für meinen Arbeitsspeicher!

Kernel-Dokumente sagen:

/ sys / power / image_size steuert die Größe des vom Suspend-to-Disk-Mechanismus erstellten Images. Es kann eine Zeichenfolge geschrieben werden, die eine nicht negative Ganzzahl darstellt, die als Obergrenze der Bildgröße in Byte verwendet wird. Der Suspend-to-Disk-Mechanismus wird sein Bestes tun, um sicherzustellen, dass die Bildgröße diese Anzahl nicht überschreitet. Wenn sich herausstellt, dass dies nicht möglich ist, wird trotzdem versucht, mit dem kleinstmöglichen Bild anzuhalten. Insbesondere wenn "0" in diese Datei geschrieben wird, wird das Suspend-Image so klein wie möglich. Beim Lesen dieser Datei wird die aktuelle Bildgrößenbeschränkung angezeigt, die standardmäßig auf 2/5 des verfügbaren Arbeitsspeichers festgelegt ist.

Versuchen Sie also, die Bildgröße anzupassen. Wie - bitte eine andere Frage stellen.

Voraussetzungen - Unterstützt Ihr Kernel Suspend-to-Disk?

Kernel unterstützt alles, was in aufgeführt ist /sys/power/state, also:

cat /sys/power/state

Erlaubt (meines Wissens) Einträge dort sind: mem, standby, freeze, disk. Erläuterung:

  • mem- hat mehrere Bedeutungen, die Sie auf Ihrem System über erfahren cat /sys/power/mem_sleep. Ich habe:s2idle [deep]
  • standby - Power-On Suspend (falls unterstützt)
  • freeze - Standby (STI)
  • disk- Suspend To Disk (STD), Ruhezustand . Das - du willst.

Dann müssen wir überprüfen cat /sys/power/disk. Wenn Sie dort sind, disabledsuchen Sie in Ihrem BIOS nach Secure Boot - das ist die einzige Idee, die ich anbieten kann, und nur das, was ich weiß, kann den Ruhezustand stören und ausschalten. Ich kenne zwar nur SecureBoot, es kann aber auch zu anderen Interferenzen kommen. Ein Blick in Ihr BIOS ist daher eine gute Idee, auch wenn Sie dort keinen "sicheren Start" haben.

Hier lesen:

  1. Kernel-Dokumente
  2. Debian-Wiki im Ruhezustand

TBH, auch wenn Ihr Kernel den Ruhezustand NICHT unterstützt, können Sie es auf andere Weise versuchen. Scrollen Sie nach unten zum AbschnittInterfaces .

Lesen Sie dies - Warnungen und Probleme - keine BTRFS

In keiner bestimmten Reihenfolge:

  1. Es funktionieren nicht alle Chipsätze (ich kann hier keine Quellen anführen, also sagen wir mal, das ist Hörensagen)
  2. VAIO hat Probleme, angeblich gibt es eine Flagge, die ihnen entgegenwirkt
  3. SecureBoot wird häufig als Störung oder Deaktivierung des Ruhezustands bezeichnet
  4. Wake-on-LAN verbraucht auch im Ruhezustand Strom
  5. Die Anzahl der Module (insbesondere Grafiken) kann initialisiert werden, BEVOR Ihr System den Ruhezustand ordnungsgemäß beendet - dies ist normalerweise die Ursache für einen schwarzen Bildschirm, wenn Sie den Ruhezustand fortsetzen . Im ArchLinux-Wiki finden Sie Tipps zum Debuggen von Problemen. Ich würde auch Ubuntu FAQ zu Problemen mit dem Ruhezustand vorschlagen. Das Durchsuchen von Launchpad-Fehlern kann ebenfalls zu Ergebnissen führen. IIRC gibt es einen Kernel-Parameter , der in Sekunden eine Verzögerung vor dem Fortsetzen angibt.
  6. Das Zulassen des Ruhezustands ist für verschiedene Polkit-Versionen unterschiedlich

Verwenden Sie kein BTRFS und gehen Sie nicht in den Ruhezustand: Beschädigte Daten sind die Folge.

Ich möchte in den Ruhezustand wechseln - Partition tauschen

Es gibt Fälle, in denen die Leute auf die Auslagerungsdatei verzichten und zur Auslagerungspartition zurückkehren. Immerhin funktionierte es auf früheren LTS. Ich habe es nicht versucht, biete also keine Hinweise an.

Ich möchte in den Ruhezustand wechseln - mit Auslagerungsdatei

  1. Stellen Sie sicher, dass Sie dort genügend Platz haben. Ubuntu Swap FAQ sagt Ihnen, wie viel Sie brauchen, Befehle von oben tun dies auch. Wenn Sie hier weitere Informationen benötigen, stellen Sie bitte eine andere Frage, da dies ein langwieriges Thema ist.
  2. Erhöhen Sie die Auslagerungsdatei, oder erstellen Sie eine neue Datei mit ausreichender Größe (ich stimme @muru zu ), und ändern Sie die Datei in /etc/fstabeine neue. Ein Neustart, um zu sehen, ob Änderungen vorgenommen wurden, ist gut (speichern Sie die Sicherungskopie, fstabdamit Sie sie für alle Fälle problemlos wiederherstellen können).
  3. Richten Sie Ihren Kernel mit den entsprechenden Parametern darauf, damit er weiß, wo er weitermachen kann.
  4. Aktualisieren / konfigurieren Sie Ihren Bootloader und starten Sie ihn neu.

Kernel-Parameter? Unheimlich!

Lesen und entscheiden Sie sorgfältig, ob Sie das tun möchten, aber es ist nur eine Möglichkeit, Ihren Kernel zu konfigurieren. Es ist möglicherweise einfacher, über systemdund in den Ruhezustand zu wechseln uswsusp(siehe Schnittstellen unten). Es kann sein, dass Sie - wie ich - letztendlich entscheiden, dass das Aufheben des Arbeitsspeichers ausreicht, und dass Sie keine 32 GB in einer Auslagerungsdatei haben möchten (zum Beispiel nicht so gut für Leute mit einer SSD in ihren Laptops). Aber!

  1. Für den Ruhezustand zum Auslagern einer Datei muss bekannt sein, resume=auf welcher Partition sich Ihre Auslagerungsdatei befindet und resume_offset=wo in der Auslagerungsdatei die Fortsetzung beginnen soll.
  2. Für den Ruhezustand in eine Partition muss ein resume=Punkt zum Auslagern der Partition angegeben werden.
  3. Das Lösen von Problemen mit dem schwarzen Bildschirm kann durchaus erforderlich sein resumedelay=.

Kernel-Dokumentation zur Verzögerung der Wiederaufnahme des Ruhezustands:

resumedelay = [HIBERNATION] Verzögerung (in Sekunden) bis zum Versuch, die Wiederaufnahmedateien zu lesen

Erforderliche Parameter für Auslagerungsdatei und Ruhezustand :

resume = [SWSUSP]

      Specify the partition device for software suspend

      Format:

      {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>}

resume_offset = [SWSUSP]

      Specify the offset from the beginning of the partition
      given by "resume=" at which the swap header is located,
      in <PAGE_SIZE> units (needed only for swap files).

      See Documentation/power/swsusp-and-swap-files.txt

Für den resume=im gleichen Stil wählen , als rootElement in fstab. Also entweder /dev/sdaXoder UUIDoder LVM. Für den Ruhezustand in eine Datei - stellen Sie eine Partition bereit, auf der sich Ihre Datei befindet.

Lesen:

  1. https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
  2. https://wiki.archlinux.org/index.php/Kernel_parameters

Problem - Swap-Header nicht gefunden

Die Auslagerungsdatei muss ordnungsgemäß formatiert sein. Wenn Ihnen dies in Ihren Protokollen mitgeteilt wird, versuchen Sie entweder, eine Datei in den Ruhezustand zu versetzen, oder Ihr Wiederaufnahmeparameter stimmt nicht.

Wechseln Sie zur Partition oder reparieren Sie die Datei oder ändern Sie die Schnittstelle, die für den Ruhezustand verwendet wird.

Siehe: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found

mkswapwird zum Formatieren von Dateien verwendet. Weitere Informationen finden Sie hier

Problem! Ruhezustand nicht erlaubt!

Test: pm-hibernate(wenn das Paket pm-utils installiert ist) oder systemctl hibernatesagen Sie, dass Sie nicht erlaubt sind. Standardeinstellung in Ubuntu seit IIRC 12.04.

Lösung (en): hängt von Ihrer Polkit-Version, Ihrer Ubuntu-Version und Ihrem Geschmack ab ... Siehe diese Frage . Auch ArchWiki auf Polkit kann helfen.

Informationen zu Mint finden Sie unter: https://forums.linuxmint.com/viewtopic.php?t=259912

Problem! Ruhezustand durch etwas im BIOS deaktiviert!

Test: cat /sys/power/diskhat disabled. In den Protokollen wird angezeigt, dass das System nicht über logind in den Ruhezustand versetzt werden konnte: Sleep-Verb wird nicht unterstützt.

Lösung: Durchsuchen Sie Ihr BIOS und finden Sie das Problem. Schalte es aus.

Lösung 2: Versuchen Sie es mit einer anderen Schnittstelle für den Ruhezustand.

Siehe: So aktivieren Sie den Ruhezustand in 16.04.1? (systemd) .

Schnittstellen

  1. swsusp - Kernelschnittstelle auf niedriger Ebene. Siehe Voraussetzungen - Kernel für welche Dateien. Das direkte Schreiben in Dateien kann zum Anhalten führen (auf RAM, Festplatte und Hybrid). Laut SwapFAQ problematisch mit Ruhezustand zu Datei.
  2. uswsusp - ArchWiki und Debian Wiki und nette AskUbuntu-Frage mit einer Beschreibung, wie man es benutzt .
  3. systemd - ArchWiki darauf
  4. pm-utils - AFAIK ist eine Sammlung von Skripten, die ursprünglich aus Debian stammen. Ich freue mich, weitere Informationen zu erhalten.

Schlußbemerkungen

Für mich war es eine Frage von fast zwei Arbeitstagen, das zusammenzustellen. Hoffentlich hilft dies Ihnen (und anderen) dabei, Ihr Problem schneller zu lösen. Es gibt immer noch Punkte, die ich verpasst habe, aber es ist 2 Uhr morgens und ich habe keine Lust mehr zu schreiben. Ich bin natürlich offen für jedermanns Hinweise, um dies zu verbessern, also kommentieren Sie weg. Ich werde antworten, sobald ich schlafe, arbeite usw. :-)

Ich bin mir nicht sicher, ob der Ruhezustand auf der Festplatte so großartig ist. Am Ende ging ich schlafen. Aber für mich war es ein Problem, eine 32-GB-Datei zu haben, nur um in der Lage zu sein, den Ruhezustand zu machen, da ich normalerweise das Tauschen überhaupt vermeide. Meine ursprüngliche Auslagerungsdatei hatte 2 GB und war größtenteils leer. YMMV. Trotzdem viel Glück! Und fangen Sie mit den Protokollen an!

LAFK sagt Reinstate Monica
quelle
Gute Antwort! Aber was letztendlich meinen Fall löste, war die verknüpfte Swap-FAQ, die mich aufforderte, "resume = UUID" zu einer Variablen in meiner Grub-Konfigurationsdatei und / oder etwas Ähnlichem mit initramfs-tools hinzuzufügen. Aus irgendeinem Grund hatte ich dort eine falsche UUID, was wahrscheinlich das Problem war. Daher empfehle ich jemandem mit einem ähnlichen Problem, zunächst die Informationen in den Swap-FAQ unter "Wie füge ich eine Swap-Partition hinzu oder ändere sie?" Und den dritten Punkt zum Ruhezustand zu lesen.
RimaNari
1
"disk - Suspend To Disk (STD), Ruhezustand. Dies - Sie wollen." Bin ich der einzige, der einen Kick davon hat? Vielen Dank.
Freitag,
gute Antwort! eine kleine bemerkung: auf einem meiner rechner funktionierte es erst nach einem zweiten bootversuch nach dem hibernate wieder (auf dem monitor wurde beim ersten versuch nichts angezeigt). Ich könnte das Problem beheben, indem ich einen HWE-Stack installiere: $ sudo apt install linux-generic-hwe-18.04(für manche Hardware ist es sogar einen Versuch linux-generic-hwe-18.04-edgewert).
Hiro-Protagonist
1
Ah. Ich werde nicht Winterschlaf halten! Ich habe 512 GB RAM. Na ja ... (Ich habe genug Speicherplatz auf meiner 10-TB-Festplatte, aber es würde Stunden dauern, um neu zu starten!)
Alexis Wilke
9

Verwenden Sie resume=UUID=<#>in beiden /etc/default/grubund die UUID der Swap-Partition anstelle des Einhängepunkts im Parameter RESUME/etc/initramfs-tools/conf.d/resume

Erstellen Sie einen Eintrag für die Auslagerungspartition, in der sich /etc/fstab so etwas wie ein Montagepunkt befindet

# Entry for Swap : 
UUID=# none  swap    sw              0       0

In /etc/default/grubhabe ich einen separaten Eintrag für die Wiederaufnahme des Ruhezustands verwendet

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Erstellen Sie ein Policykit in der lokalen Behörde (pkla)

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Und dort einfügen

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

[Enable hibernate to be run via cron]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=yes

Nach diesem Update initramfs und GRUB

sudo update-initramfs -u -k all
sudo update-grub

Starten Sie neu, öffnen Sie einige Apps und verwenden Sie systemctl hibernate(ohne sudo), um zu prüfen, ob es funktioniert

Roey
quelle
funktioniert gut! Vielen Dank.
Yossarian42
Danke Mann, du hast mich gerettet!
Vahe Shadunts
1

Bei mir hat es immer bis zum 18.04. Funktioniert und nach dem 18.04. Habe ich es wie in vielen Artikeln aktiviert, aber es hat plötzlich erst gestern aufgehört zu funktionieren (funktioniert gut für 4-5 Monate).

und hier ist die ... EINE SACHE, die es wieder zum Laufen gebracht hat ...

Sagen Sie grub2, wo sich die Swap-Partition befindet:

Finden Sie zuerst mit dem folgenden Befehl heraus, auf welcher Partition es sich befindet:

cat /etc/fstab

Meins ist auf sda7 wie die folgende Ausgabe:

swap war während der Installation auf / dev / sda7

Fügen Sie dann in Grub2 den folgenden Zusatz zur folgenden Zeile hinzu, indem Sie den folgenden Befehl verwenden:

sudo gedit / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = Lebenslauf deaktivieren = / dev / sda7"

Der wichtige Teil ist resume=/dev/sda7

/ dev / sda7 in meinem Fall

Dann aktualisiere Grub mit dem folgenden Befehl und danach funktioniert es wieder einwandfrei:

sudo update-grub

Nach vielen Versuchen war dies das Einzige, was funktioniert hat, vielleicht lag es nur an einem Update des Kernels, das es vermasselt hat, trotzdem hat dies funktioniert.

markackerman8-gmail.com
quelle
0

hoffe das hilft jemandem, aber ich lasse popos / ubuntu 19.04 laufen. In meinem Setup konnte ich mit s2disk oder pm-hibernate in den Ruhezustand wechseln, der Wiederaufnahmevorgang schlug jedoch fehl. Um dies zu beheben, wird mein System mit UEFI anstelle von Grub gestartet. Ich musste nur den Bootloader neu installieren. Um zu überprüfen, ob Sie UEFI ausführen, verwenden Sie Folgendes:

[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"

Wenn ich mich im UEFI-Modus befand, um den Bootloader erneut zu installieren, variiert dies, wenn Sie eine NVME- oder SATA-Festplatte verwenden: https://support.system76.com/articles/bootloader/

Stellen Sie sicher, dass Sie in Ihren kernalboot-Optionen die Partition oder UUID angeben, von der aus Sie fortfahren möchten, z.

resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Sie können dies folgendermaßen hinzufügen: 1) sudo kernel-stub -a "resume = UUID = ..." 2) Bearbeiten Sie die Datei /etc/initramfs-tools/conf.d/resume und fügen Sie Folgendes hinzu: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88

Überprüfen Sie die Datei / var / log / syslog auf Folgendes: 4. August 22:26:42 pop-os / usr / bin / kernelstub [19639]: kernelstub: DEBUG kopts: root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro quiet loglevel = 0 systemd .show_status = false resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Wenn der Lebenslauf fehlt oder falsch ist, müssen Sie Ihren boot kernal erneut aktualisieren.

Lingster
quelle
0

Abgesehen von der Einrichtung eines Swap-Wiederaufnahmepunkts in grub, der in der Antwort von Sam73 erwähnt wurde , stellte ich fest, dass mein Ubuntu 18.04 auch Folgendes installieren muss laptop-mode-tools:

$sudo apt install laptop-mode-tools

dann ändere ENABLE_LAPTOP_MODE_ON_AC=1in der config datei:

$sudo vim /etc/laptop-mode/laptop-mode.conf

Laptop-Modus starten mit:

$sudo laptop_mode start

PS Du könntest mit prüfen, ob der Laptop startet oder nicht

$cat /proc/sys/vm/laptop_mode

Wenn es gedruckt wird 0, laptop_modefunktioniert das nicht, andernfalls zeigt es an, dass es gut funktioniert.

Yossarian42
quelle