staging.inyokaproject.org

suspend to disk / hibernate

Status: Gelöst | Ubuntu-Version: Kubuntu 18.04 (Bionic Beaver)
Antworten |

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Moin,

ich versuche gerade ein suspend-to-disk zu realisieren.

Dafür nutze ich den Systemd-Service

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

Im Wiki-Artikel Swap bzw. in seiner zugehörigen Diskussion herrscht Unsicherheit, ob das mit einem Swapfile geht oder ob man dafür eine Swap-Partition braucht. Standardmäßig hat bionic ja ein Swapfile. Ich habe 16 GB RAM und mein Swapfile mal auf 25 GB vergrößert, sodass hier erstmal kein Engpass ist.

Die Anleitung, die mir dafür am logischsten erscheint ist https://askubuntu.com/questions/768136/how-can-i-hibernate-on-ubuntu-16-04?answertab=votes#tab-top . Dort wird erklärt, dass man als Kernel-Parameter angeben muss, wo sich das Swapfile befindet. Das klingt nachvollziehbar und spricht auf jeden Fall für die Swap-Partition. (wobei auch die mit resume= angegeben werden muss, da frage ich mich: Wie hat das eigentlich früher funktioniert, als man das nicht von Hand gemacht hat?)

So sieht das aktuell bei mir aus:

# filefrag -v /swapfile | head
Filesystem type is: ef53
File size of /swapfile is 26843545600 (6553600 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:    1087488..   1087488:      1:            
   1:        1..    8191:    1087489..   1095679:   8191:             unwritten
   2:     8192..   20479:    1101824..   1114111:  12288:    1095680: unwritten
   3:    20480..   22527:    1138688..   1140735:   2048:    1114112: unwritten
   4:    22528..   34815:    1126400..   1138687:  12288:    1140736: unwritten
   5:    34816..   36863:    1153024..   1155071:   2048:    1138688: unwritten
   6:    36864..   53247:    1157120..   1173503:  16384:    1155072: unwritten
# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            26214396        0       -2
# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:                                             
#   info -f grub -n 'Simple configuration'                                                             
                                                                                                       
GRUB_DEFAULT=0                                                                                         
#GRUB_HIDDEN_TIMEOUT=0                                                                                 
GRUB_HIDDEN_TIMEOUT_QUIET=true                                                                         
GRUB_TIMEOUT=10                                                                                        
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`                                       
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/nvme0n1p4 resume_offset=1087489"                  
GRUB_CMDLINE_LINUX=""                                                                                  
                                                                                                       
# Uncomment to enable BadRAM filtering, modify to suit your needs                                      
# This works with Linux (no patch required) and with any kernel that obtains                           
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Der Offset 1087488 mit length 1 kam mir gefühlt etwas klein vor, damit hat es auch nicht funktioniert, deshalb habe ich die nächste Zeile gewählt. Geht auch nicht.

Heißt: Der hibernate-Befehl wird ausgeführt, aber wenn ich dann den Rechner neu starte, ist es wie ein normaler Boot: Es kommt der Anmeldebildschirm und alles ist clean. Das "resume" klappt also nicht.

Hier ein paar Zeile aus dem syslog, die "resume" oder "swap" beinhalten:

Dec 19 22:04:43 pc swapon[334]: swapon: /swapfile: software suspend data detected. Rewriting the swap signature.
[...]
Dec 19 22:13:47 pc kernel: [  147.846760] PM: Starting manual resume from disk
Dec 19 22:13:47 pc kernel: [  147.846874] PM: Image not found (code -22)
Dec 19 22:13:47 pc systemd-sleep[2730]: Suspending system...
Dec 19 22:13:47 pc kernel: [  147.919996] PM: hibernation entry
Dec 19 22:13:47 pc kernel: [  147.920988] PM: Syncing filesystems ... 
Dec 19 22:15:16 pc kernel: [    0.000000] microcode: microcode updated early to revision 0xca, date = 2019-09-26
Dec 19 22:15:16 pc kernel: [    0.000000] Linux version 4.15.0-72-generic (buildd@lcy01-amd64-026) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 (Ubuntu 4.15.0-72.81-generic 4.15.18)
Dec 19 22:15:16 pc kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=cb38e703-ce05-4a3a-88fb-c51b0542639a ro quiet splash resume=/dev/nvme0n1p4 resume_offset=1087488 vt.handoff=1
[...]
Dec 19 22:24:35 pc kernel: [  567.326111] PM: Starting manual resume from disk
Dec 19 22:24:35 pc kernel: [  567.326253] PM: Image not found (code -22)
[...]
Dec 19 22:25:37 pc kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=cb38e703-ce05-4a3a-88fb-c51b0542639a ro quiet splash resume=/dev/nvme0n1p4 resume_offset=1087489 vt.handoff=1

Hat jemand ne Idee, was es hier noch braucht?

Gruß BillMaier

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Moin,

halte dich mal hieran https://fitzcarraldoblog.wordpress.com/2018/07/14/configuring-lubuntu-18-04-to-enable-hibernation-using-a-swap-file/

Habe es wie folgt gemacht (ohne die 85-suspend.rules) habe auch nur ein Swapfile!

sudo apt install hibernate uswsusp
cat /etc/fstab  ## root Partition ermittel (resume)
sudo filefrag -v /swapfile | head  ### swapgröße ermitteln (resume_offset)
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="noplymouth resume=UUID=e4a31e20-c380-4231-8c74-3606de7b0bef resume_offset=1625108480 resumedelay=10"  ## Eintrag bei mir gesetzt
sudo update-grub
sudo nano /etc/initramfs-tools/conf.d/resume  ## resume Datei erzeugen
RESUME=UUID=e4a31e20-c380-4231-8c74-3606de7b0bef resume_offset=1625108480  ## Inhalt der resume Datei bei mir
sudo update-initramfs -u -k all

Das war es.

Ausgabe nach Neustart (/var/log/kern.log)

stephan-Desktop kernel: [ 1681.991893] ACPI: Low-level resume complete
Dec 18 22:49:27 stephan-Desktop kernel: [ 1681.991933] PM: Restoring platform NVS memory

Nachtrag

Befehl ist

sudo hibernate

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Danke. Den delay kann ich mal probieren.

Ansonsten scheint mir das doppelt-gemoppelt.

Verstehst du warum man die Einträge 2x setzt?

Weiß jemand welche length bei dem offsite-Teil benötigt wird? Mich irritiert immer noch, dass das bei mir 1 ist, bei anderen irgendwelche Tausender

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

BillMaier schrieb:

Danke. Den delay kann ich mal probieren.

Bei mir Funktioniert es so einwandfrei 😉 Mit dem Standard systemd-hibernate.service ebenfalls nicht!

Ansonsten scheint mir das doppelt-gemoppelt.

Wie man es sieht..

Verstehst du warum man die Einträge 2x setzt?

Du meinst in die Grub sowohl in die Resume Datei?

Weiß jemand welche length bei dem offsite-Teil benötigt wird? Mich irritiert immer noch, dass das bei mir 1 ist, bei anderen irgendwelche Tausender

Was meinst du damit genau? 😮

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Kellerkind_2009 schrieb:

BillMaier schrieb:

Verstehst du warum man die Einträge 2x setzt?

Du meinst in die Grub sowohl in die Resume Datei?

genau.

Weiß jemand welche length bei dem offsite-Teil benötigt wird? Mich irritiert immer noch, dass das bei mir 1 ist, bei anderen irgendwelche Tausender

Was meinst du damit genau? 😮

Das hier:

# filefrag -v /swapfile | head
Filesystem type is: ef53
File size of /swapfile is 26843545600 (6553600 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:    1087488..   1087488:      1:            
   1:        1..    8191:    1087489..   1095679:   8191:             unwritten

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Kann ich nicht bestätigen

stephan@stephan-Desktop:~$ sudo filefrag -v /swapfile | head
[sudo] Passwort für stephan: 
Filesystem type is: ef53
File size of /swapfile is 1625108480 (396755 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   2:    63488..   96255:     100352..    133119:  32768:      98304:
   3:    96256..  126975:     133120..    163839:  30720:            
   4:   126976..  159743:     165888..    198655:  32768:     163840:
   5:   159744..  190463:     198656..    229375:  30720:            
   6:   190464..  223231:     231424..    264191:  32768:     229376:
stephan@stephan-Desktop:~$

hast du nun beides in der fstab? Also als Datei und Partition?

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Kellerkind_2009 schrieb:

hast du nun beides in der fstab? Also als Datei und Partition?

Nein, ich hab nur ein swapfile. Grad kein Platz für noch ne separate Partition.

Kann ich nicht bestätigen

eben. Die ganzen Tutorials auch nicht.

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Was zeigt denn die Ausgabe von

swapon

bei dir nun? Was tatsächlich merkwürdig ist bei dir

File size of /swapfile is 26843545600 (6553600 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:    1087488..   1087488:      1:            

Dazu fehlen mir aber die Kenntnisse 😇

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Kellerkind_2009 schrieb:

Was zeigt denn die Ausgabe von

swapon

bei dir nun?

swapon
NAME      TYPE SIZE USED PRIO
/swapfile file  25G   0B   -2

Hatte ich aber oben schon gepostet 😉

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

BillMaier schrieb:

Hatte ich aber oben schon gepostet 😉

Willst du Streiten? 😬

Die swap Datei mal löschen ☺

sudo rm /swapfile

Danach auf ein neues. Wird ja neu angelegt. Dann nochmal

sudo filefrag -v /swapfile | head

zeigen.

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Kellerkind_2009 schrieb:

Willst du Streiten? 😬

nö. Hab mich nur gewundert.

Wenn das so bei dir ankommt (trotz smiley), können wir hier aber auch mal Pause machen. Noch geht die Welt nicht unter, wenn das nicht tut ☺

In jedem Fall: Vielen Dank bis hierher. 👍

Die swap Datei mal löschen ☺

sudo rm /swapfile

Danach auf ein neues. Wird ja neu angelegt. Dann nochmal

sudo filefrag -v /swapfile | head

zeigen.

# swapoff -a
# rm /swapfile 
# fallocate -l 25G /swapfile
# chmod 0600 /swapfile 
# mkswap /swapfile 
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 25 GiB (26843541504 bytes)
no label, UUID=1f649aaf-38a2-4beb-9269-d27d08dabfc0
# filefrag -v /swapfile | head
Filesystem type is: ef53
File size of /swapfile is 26843545600 (6553600 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:   62095360..  62095360:      1:     

Wird neu angelegt beim reboot? Dann mach ich das mal.

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

BillMaier schrieb:

Wenn das so bei dir ankommt (trotz smiley), können wir hier aber auch mal Pause machen. Noch geht die Welt nicht unter, wenn das nicht tut ☺

Oh man – da haben wir ja voll daneben Gesmileyt 😮 Wollte auch nur Witzig sein – da gute Laune Heute ☺

Sorry das es falsch rüber kam.

Gruß Stephan

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Na, umso besser. Dann wäre das jetzt auch geklärt. 👍

# filefrag -v /swapfile | head
open: No such file or directory

wurde dann wohl doch nicht neu angelegt...

Kellerkind_2009

Avatar von Kellerkind_2009

Anmeldungsdatum:
26. November 2009

Beiträge: 19527

Wird nicht selbst angelegt – hast Recht.Ich bin davon aus gegangen (Asche über mein Haupt) 😇

Wie eine neue Swap angelegt wird weist du ja ☺

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

tolle Hilfe 😛 😉

Antworten |