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