Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe
allgemeine Kategorie => Installation & Einrichtung => Thema von: Sebastian am 25. Dezember 2023, 10:04:11

Titel: Ruhezustand (Hibernate), systemd 255, dracut 059, funktioniert nicht
Beitrag von: Sebastian am 25. Dezember 2023, 10:04:11

Hallo Suletuxe,

Da ich mir vor ein paar Tagen erst eine Udev Regel gebaut habe, die mir mein Notebook in den Ruhezustand versetzt, falls der Akku unter 10 % fällt, ist mir gestern aufgefallen das diese nicht mehr funktioniert. Auch ein Versuch, das Notebook manuell in den Ruhezustand zu bringen mit systemctl hibernate brachte nur folgende Fehlermeldung:


Code:

Failed to find location to hibernate to: Invalid argument


systemd weiß also nicht, wo er die Daten ablegen soll. In meinen Fall findet er also nicht die Swapdatei.
Diese befindet sich bei mir in einem verschlüsselten LUKS Volume auf einem ext4 Dateisystem das sich in einem Logical Volume befindet im folgendem Dateisystem Pfad /swapfile also eigentlich ganz einfach zu finden ;D.

Meine Konfigurationen an den wichtigen Stellen alle noch mal geprüft, passte alles so weit. Lange Rede kurzer Sinn, dass Problem lag, an dem Update von systemd zu Version 255 dort gab es ein paar Änderungen, die den Ruhezustand betreffen. Diese Änderungen werden von dracut Version 059 (Standard Initram Generator eines EOSes) noch nicht erkannt. Das hatte bei mir zur Folge das im Initram Filesystem das dracut resume Module komplett fehlte und zudem noch das dieses Modul die aktuellen Änderungen von systemd noch nicht berücksichtigt. So das ich die Datei


Code:

/usr/lib/systemd/system/systemd-hibernate-resume.service


selbst mit ins Initram Filesystem mit einpflegen musste. Zumindest so lange, bis das Problem Upstream behoben wird. Es gibt dazu schon offene Issues und auch fixes, diese müssen es jetzt nur noch in eine Realse Version schaffen.

Falls ihr also den Ruhezustand verwendet und dracut als Initram Filesystem Generator verwendet, lasse ich euch ein paar Link da, wo ihr euch genauer Informieren könnt über das Problem und einer verübergehnden Lösung.

https://github.com/dracutdevs/dracut/issues/2587
https://forum.endeavouros.com/t/hibernate-to-encrypted-swap-partition-not-working/49239/2

PS:
@Andreas

Da der Ruhezustand für mich ein wichtiger Bestandteil um meine Arbeit bei niedrigem Akkuzustand nicht zu verlieren ist, kann ich dieses Problem nicht wie bei meinen Raspberry Pi 5 einfach aussetzten und warten bis sich das Problem von selbst löst. Es besteht hier also bei mir ein richtiger Bedarf, dass schnelles Handeln erforderte. Du siehst, ich sehe das ähnlich wie du, dass man sich schnell um ein Problem kümmern sollte und nicht unbedingt wartet, bis eine Version stabil ist. Es kommt bei mir halt auch auf den Bedarf drauf an. Und bei meinem PI das kann ich z.B. gut aussitzen bis die Betriebssysteme stabil sind ;)

Ich kann auch noch mal bestätigen, dadurch dass ich mich sofort selbst um eine Lösung bemüht habe, habe ich einiges wieder dazu lernen können:


  • systemd interner wie die Services wie systemd-hibernate-resume.service etc. arbeiten. Und wie man Hooks vor und nach einem Hibernate einbringen kann.
  • Wissen über Dracut Module und wie man Dateien in das Initram Dateisystem einbringt, aufgefrischt.
  • In Erfahrung gebracht das seid systemd 255 keine extra Kernel Parameter wie resume= bei einem EFI System mehr angegeben werden müssen(link (https://github.com/systemd/systemd/blob/v255-rc2/NEWS#L1327-L1331)). Da diese Werte mithilfe einer EFI Variable von Systemd beim nächsten Booten an den Kernel übergeben wird. (Ein weiterer Grund mehr auf EFI zu setzten statt auf das alte lagecy BIOS) (Mein Notebook hat leider noch kein EFI :( )


  • Da ist vieles mit dabei, das mit meinem Problem überhaupt nichts tun hatte, trotzdem einem um einiges weiter bringt, und man sich beim nächsten Mal wieder um einiges leichter tut Fehler zu debuggen.

    LG
    Sebastian

Titel: Re:Ruhezustand (Hibernate), systemd 255, dracut 059, funktioniert nicht
Beitrag von: Andreas am 26. Dezember 2023, 08:47:34

;D So ist es Sebastian. Wenn das Werkzeug die Arbeiten die einem wichtig sind nicht mehr erledigen kann dann muss man sich selbst drum kümmern. Was "einem wichtig" ist unterscheidet sich zwischen allen Nutzern. Und deswegen passt auch kein "System von der Stange" wie Windows oder Mac-OS/X. Und deswegen wird es niemals ein Buch (oder eine Webseite) geben wo alle Tipps für solche Fälle aufgelistet sind: es gibt einfach zu viele Fälle, und sehr viele werden nur von ganz wenigen benötigt. Dort hilft dann nur, selbst zu verstehen und selbst Hand anzulegen...

LG
Andreas


Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.