Suspend to Disk (hibernate) not working with ThinkPad X390

Recently I installed openSUSE Tumbleweed on my ThinkPad X390. Everything works so far, except Suspend to Disk. Sending it to hibernate looks good, but after I restart, it does not restore the old state but makes a fresh boot (unsaved files are gone, some applications are not there).

I have four partitions, one for uefi boot, one for the system (btrfs), one for /home (ext4), and swap (8 GiB). My computer has 8 GiB memory.

How to debug my suspend-to-disk issue?

Upload complete output of

journalctl --boot=-1 --no-pager --full

after hibernate/resume to This may provide some starting points.

1 Like

Hi @gruenich

Out of curiosity, does your ThinkPad X390 have touchscreen? If so, does the touchscreen work?

Thank you in advance

No, it does not have a touchscreen.

Thanks for the answer. I executed the command and pasted it: openSUSE Paste

You have a swap partition big enough for the memory image???

Yes, 8 GiB of memory and 8 GiB of swap. First I had a swap that was too small. I moved my swap partition to a new one, that is 8 GiB large.

# cat /proc/meminfo
MemTotal:        7897820 kB


# lsblk
nvme0n1     259:0    0 476,9G  0 disk 
├─nvme0n1p1 259:1    0 333,2M  0 part /boot/efi
├─nvme0n1p2 259:2    0     4G  0 part 
├─nvme0n1p3 259:3    0   150G  0 part /var
│                                     /usr/local
│                                     /srv
│                                     /root
│                                     /opt
│                                     /boot/grub2/x86_64-efi
│                                     /boot/grub2/i386-pc
│                                     /
├─nvme0n1p4 259:4    0 314,6G  0 part /home
└─nvme0n1p5 259:5    0     8G  0 part [SWAP]

Well, at least it did try to hibernate. If you did not reboot yet, could you also upload the output of

journalctl --boot --no-pager --full

Did not reboot in the meantime:

resume= parameter is missing on kernel command line. It is present in dracut stored command line, but systemd is not aware about it.

Add resume=... parameter referring to your swap partition, reboot, then try hibernate/resume again. I cannot tell you the value of this parameter because you did not provide information allowing to guess it. Better is to use UUID or LABEL, not device name.

1 Like

Ok, but where do I add the resume= paramenter? I tried Yast Bootloader, but then the reboot failed until I manually deleted the parameter. I tried the UUID and PARTUUID of /dev/nvme0n1p5, same result.

> blkid
/dev/nvme0n1p5: UUID="ec326a00-0b02-4ab5-88e2-3f8291d6391a" TYPE="swap" PARTUUID="c171f784-9a31-4c24-ac6c-8300f1d5fca6"
/dev/nvme0n1p3: UUID="8036cc12-b9ff-4ce8-906e-53ebbfbd8a8e" UUID_SUB="d807525b-7eea-4c7f-a6ca-34f6ad6f2a3e" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="39402d22-1dc3-4fb3-818c-1f89e1417d54"
/dev/nvme0n1p1: UUID="E38F-6C70" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="0000044b-9c90-e394-bbb8-d80196080000"
/dev/nvme0n1p4: UUID="3c8cd2d3-3ac9-4dd5-beed-f56c0113d691" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="d05b2f33-6f68-49d4-9c0c-51db580132ad"
/dev/nvme0n1p2: UUID="1aa70c8b-ce66-4506-9ad9-53cee64eaa6c" TYPE="swap" PARTUUID="06917d3f-f3b2-4ae8-a7fe-800fb84fed1b"

You neither show what you added not errors when you added it so no comments are possible.

You are right! I opened Yast Bootloader and added to the optional kernel parameter splash=silent quiet security=apparmor the resume command resume=ec326a00-0b02-4ab5-88e2-3f8291d6391aor resume=c171f784-9a31-4c24-ac6c-8300f1d5fca6.
In both cases the booting stopped with the error message a start job is running followed by the UUID. I waited for a couple of minutes and aborted.

This should be



1 Like

That’s it. Hiberating works now. Thank you so much for debugging, spotting the issue, and guiding me to fix it!

Thank you for your answer @gruenich