[gelöst] hibernate funktioniert unregelmäßig

Debian auf Notebooks und speziellen Geräten wie eingebetteten Systemen, Routern, Set-Top-Boxen, ...
Antworten
deichschaf
Beiträge: 14
Registriert: 01.10.2023 07:09:48

[gelöst] hibernate funktioniert unregelmäßig

Beitrag von deichschaf » 02.10.2023 18:13:23

Ich habe Debian Stable auf einem T40 Thinkpad.

Ich würde gerne nur hibernate (suspend to disk) verwenden und den Rechner nur selten vollständig herunterfahren.
Ich benutze dazu

Code: Alles auswählen

systemctl hibernate
Das funktioniert manchmal dreimal, manchmal sogar fünf- oder sechsmal, aber irgendwann wird er so nicht mehr schlafen gelegt.
Wenn ich es dann mit

Code: Alles auswählen

echo disk > /sys/power/state
versuche, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

echo: write error: auf dem Gerät ist kein Speicherplatz mehr verfügbar
Aber das verstehe ich nicht.

Viele Grüße
deichschaf
Zuletzt geändert von deichschaf am 07.10.2023 17:14:38, insgesamt 1-mal geändert.

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: hibernate funktioniert unregelmäßig

Beitrag von Livingston » 02.10.2023 20:50:31

Wieviele swap-Partitionen hast Du?

Code: Alles auswählen

# swapon
Falls nur eine vorhanden ist, wird die möglicherweise im regulären Betrieb angefüllt. Das Hibernate-Image findet dann keinen Platz mehr, folglich wird die Kiste auch nicht schlafengelegt.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: hibernate funktioniert unregelmäßig

Beitrag von tobo » 02.10.2023 21:06:30

Da es ja nicht um suspend2ram, sondern um suspend2disk geht, sollte der Swap egal sein.
Was den Speicherplatz angeht, da könnte man mit df dann mal nachschauen, aber irgendwie hört sich das nach einem Bug (kein clean-up) an. Außerdem könnte man zur Gegenprobe mal grundsätzlich pm-hibernate aus dem Paket pm-utils, ersatzweise zur systemd-Variante, testen.

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: hibernate funktioniert unregelmäßig

Beitrag von Livingston » 02.10.2023 22:46:41

@tobo: Bin da anderer Meinung.
Üblicherweise wird eine swap-Partition genutzt, um hibernate (=suspend to disk) zu ermöglichen. Zuständig ist dafür der Kernel-Parameter resume=/dev/$SWAP-DEVICE oder über einen Eintrag unter /sys (finde den gerade nicht).
Wenn der Eintrag auf die normale Swap-Partition zeigt und diese bereits rappelvoll ist, dürfte es Probleme geben.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: hibernate funktioniert unregelmäßig

Beitrag von tobo » 02.10.2023 23:02:25

Livingston hat geschrieben: ↑ zum Beitrag ↑
02.10.2023 22:46:41
@tobo: Bin da anderer Meinung.
Und das offensichtlich zu recht! Bestätigt u.a. hier:
https://wiki.ubuntuusers.de/Ruhezustand/

Edit: Mir fällt da auch gerade auf, dass ich da so einiges komplett durcheinander werfe...

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: hibernate funktioniert unregelmäßig

Beitrag von GregorS » 03.10.2023 02:45:59

deichschaf hat geschrieben: ↑ zum Beitrag ↑
02.10.2023 18:13:23
Das funktioniert manchmal dreimal, manchmal sogar fünf- oder sechsmal, aber irgendwann wird er so nicht mehr schlafen gelegt.
Mir ist nicht so richtig klar, wie Du das meinst.

Funktioniert es manchmal erst in der dritten oder fünften „Wachphase“ oder musst Du den Befehl manchmal fünfmal eingeben, bevor er befolgt wird? Hast Du auch einmal probiert, ihn nicht per Befehl, sondern per Wahl aus dem Menü schlafen zu legen?

Seltsame Voodoo-Effekte kenne ich bislang nur von einem Mac Mini, dessen IR-Empfänger mal funktionierte, mal nicht. Erst seit der Umstellung von Debian auf Devuan funktioniert er deterministisch (also immer). Der wird allerdings immer kalt gestartet.

HTH

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

deichschaf
Beiträge: 14
Registriert: 01.10.2023 07:09:48

Re: hibernate funktioniert unregelmäßig

Beitrag von deichschaf » 03.10.2023 08:29:04

Ja, es ist so, dass ich den Befehl eingebe zum Schlafenlegen, der Rechner tut das. Ich lasse ihn aufwachen, ich lege ihn schlafen. Das funktioniert dann so 3-7 mal ungefähr so.

pm-hibernate hatte ich schon getestet; da ist es auch nicht anders. Einen Menuknopf habe ich nicht, weil dm als wm.

Wenn es um swap ginge, — dann werde ich doch mal ausprobieren, swap vorher zu leeren (mit swapoff/swapon), wenn das Schlafenlegen grad mal nicht funktioniert.

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: hibernate funktioniert unregelmäßig

Beitrag von Livingston » 03.10.2023 12:19:53

hibernate legt immer ein Speicherabbild in einer Swap-Partition ab. Deshalb ist es gut, eine solche Partition vorrätig zu haben, aber nicht in die Datei /etc/fstab aufzunehmen.
Ich würde zum Testen erstmal

Code: Alles auswählen

#swapon -a
ausführen, wonach alle Swaps, die in /etc/fstab stehen, aktiviert sind.
Dann mit

Code: Alles auswählen

# swapon (ohne -a)
ausgeben lassen, welche das sind.
Wird dann nur eine swap-Partition angezeigt, kannst Du diese zwar für hibernate nutzen, solltest sie aber vorher mit swapoff -a deaktivieren, entsprechend nach dem Aufwachen mit swapon -a wieder aktivieren.
Schau am Besten erst mal nach, dann können wir weiter überlegen.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

deichschaf
Beiträge: 14
Registriert: 01.10.2023 07:09:48

Re: hibernate funktioniert unregelmäßig

Beitrag von deichschaf » 03.10.2023 12:49:52

Folgendes

Code: Alles auswählen

swapoff -a
swapon -a
hatte ich jetzt schon gemacht. Und siehe da — dann funktioniert Hibernation.

Und aha, ich kann also `swapon -a' dann erst nach dem Aufwachen wieder machen.

Code: Alles auswählen

~>> swapon 
NAME      TYPE      SIZE USED PRIO
/dev/dm-2 partition 976M   0B   -2 
Der Eintrag in /etc/fstab ist:

Code: Alles auswählen

/dev/mapper/tack--vg-swap_1 none            swap    sw              0       0
Ich müsste also immer vor dem Schlafenlegen die swap mit `swapoff -a' deaktivieren.

Nachtrag:

swapoff/swapon muss beides gemacht werden vor dem Schlafen, sonst gibt es eine Meldung, dass kein passendes Gerät vorhanden ist.

Und zweitens: Meine Freude war nur von kurzer Dauer. Beim nächsten Mal hat es so nicht funktioniert.

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: hibernate funktioniert unregelmäßig

Beitrag von Livingston » 03.10.2023 14:09:06

Die swap ist ziemlich klein (<1GB). Wenn der benutzte Speicher zum Einschlafen in die swap rübergeschaufelt werden muss, kann diese u.U. nicht mehr ausreichen.
Du könntest die bestehende swap vergrößern oder gleich eine zusätzliche mit ausreichender Größe einrichten. Die würde dann gar nicht erst in /etc/fstab eingetragen werden und stünde nur für hibernate zur Verfügung.
Problem in beiden Fällen: Du musst Platz dafür finden. Wenn schon alles auf der Platte/SSD belegt ist, wird's ein wenig frickelig, weil dann Partitionen und/oder virtuelle Geräte im Volume-Manger verkleinert werden müssten.

Bevor ich es vergesse: Herzlich willkommen im Forum :wink:
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

deichschaf
Beiträge: 14
Registriert: 01.10.2023 07:09:48

Re: hibernate funktioniert unregelmäßig

Beitrag von deichschaf » 03.10.2023 15:16:09

Livingston hat geschrieben: ↑ zum Beitrag ↑
03.10.2023 14:09:06
Bevor ich es vergesse: Herzlich willkommen im Forum :wink:
Danke! :) Um genau zu sein, ich war schon mal hier im df, konnte aber meinen alten Account nicht wieder aktivieren.

Ich werde mal an einem ruhigen Herbsttag swap vergrößern. Dass das nicht das Lustigste ist, weiß ich. Könnte auch eine Neuinstallation machen, weil sich über die Jahre doch so einiges angesammelt hat. Aber soweit ich mich erinnere, ist es da auch nicht so einfach, die Partitions-oder Swapgrößen einzustellen. Wie auch immer, erstmal versuche ich es mit Rootpartition verkleinern, swap vergrößern.

Vielen Dank!

deichschaf
Beiträge: 14
Registriert: 01.10.2023 07:09:48

Re: hibernate funktioniert unregelmäßig

Beitrag von deichschaf » 07.10.2023 17:13:51

Nur für den Fall, dass es jemand wissen will. :wink: Ich habe dann die Swap vergrößert.

Mit einem Debian Stick gebootet.
Dann device mapper aktiviert:

Code: Alles auswählen

modprobe dm-crypt

Das Verschlüsselte LVM aufgeschlossen:

Code: Alles auswählen

cryptsetup luksOpen /dev/nvme0n1p3 offen
Die Disks gescannt

Code: Alles auswählen

vgscan --mknodes
und aktiviert, dass man mit ihnen arbeiten kann.

Code: Alles auswählen

vgchange -ay

Anzeigen lassen:

Code: Alles auswählen

lvdisplay

home um etwa 5 GB verkleinert

Code: Alles auswählen

resize2fs /dev/vg-track/home 442G
ebenso das Volume

Code: Alles auswählen

lvresize -L 442G /dev/vg-track/home
Stimmt alles?

Code: Alles auswählen

lvdisplay

Ja, dann Swap vergrößern

Code: Alles auswählen

lvextend -l +100%FREE /dev/vg-track/swap_1

Immer noch alles okay

Code: Alles auswählen

lvdisplay

Also keine weitere Arbeiten mehr nötig:

Code: Alles auswählen

vgchange -an

und schließen:

Code: Alles auswählen

cryptsetup luksClose offen
Hat funktioniert und macht, was es sollte. :)

Antworten