Resume from disk fails on LUKS

I installed EOS with the full system encryption option. The problem is that resume from disk does not work. During boot there 2 errors that seem key, one after the openswap hook there is a warning about the swap device not being found, then afterwards in the resume hook it waits 10 seconds then gives another warning about the device not being found. Oddly though once the system is booted up the swap partition is mounted.

I would post boot logs, but I cannot actually retrieve the logs with dmesg or journalctl -k. Here are some bits of what seem like relevant info though:

System Info

inxi

System:
  Kernel: 5.17.4-zen1-1-zen arch: x86_64 bits: 64 Desktop: KDE Plasma
    v: 5.24.4 Distro: EndeavourOS
Machine:
  Type: Laptop System: Dell product: Inspiron 15 5510 v: N/A
    serial: <superuser required>
  Mobo: Dell model: 06KTVX v: A00 serial: <superuser required> UEFI: Dell
    v: 2.3.0 date: 08/17/2021
Battery:
  ID-1: BAT0 charge: 48.6 Wh (90.0%) condition: 54.0/54.0 Wh (100.0%)
CPU:
  Info: quad core model: 11th Gen Intel Core i5-11320H bits: 64 type: MT MCP
    cache: L2: 5 MiB
  Speed (MHz): avg: 2117 min/max: 400/4500 cores: 1: 880 2: 2662 3: 2940
    4: 904 5: 3535 6: 401 7: 3516 8: 2103
Graphics:
  Device-1: Intel TigerLake-LP GT2 [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: Realtek Integrated_Webcam_HD type: USB driver: uvcvideo
  Display: x11 server: X.Org v: 21.1.3 driver: X: loaded: intel
    unloaded: modesetting gpu: i915 resolution: 1920x1080~60Hz
  OpenGL: renderer: Mesa Intel Xe Graphics (TGL GT2) v: 4.6 Mesa 22.0.1
Audio:
  Device-1: Intel Tiger Lake-LP Smart Sound Audio
    driver: sof-audio-pci-intel-tgl
  Sound Server-1: ALSA v: k5.17.4-zen1-1-zen running: yes
  Sound Server-2: PipeWire v: 0.3.50 running: yes
Network:
  Device-1: Intel Wi-Fi 6 AX201 driver: iwlwifi
  IF: wlan0 state: up mac: 7c:21:4a:65:01:0d
Bluetooth:
  Device-1: Intel AX201 Bluetooth type: USB driver: btusb
  Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: disabled
    rfk-block: hardware: no software: no address: see --recommends
RAID:
  Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd
Drives:
  Local Storage: total: 238.47 GiB used: 61.68 GiB (25.9%)
  ID-1: /dev/nvme0n1 model: OM3PDP3-AD NVMe KDI 256GB size: 238.47 GiB
Partition:
  ID-1: / size: 216.72 GiB used: 61.67 GiB (28.5%) fs: ext4 dev: /dev/dm-0
  ID-2: /boot/efi size: 299.4 MiB used: 448 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: partition size: 16.91 GiB used: 0 KiB (0.0%)
    dev: /dev/dm-1
Sensors:
  System Temperatures: cpu: 67.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 260 Uptime: 4h 13m Memory: 15.37 GiB used: 5.2 GiB (33.8%)
  Shell: Zsh inxi: 3.3.15

fstab

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=6248-E435                            /boot/efi      vfat    defaults,noatime 0 2
/dev/mapper/luks-624c49b2-5e32-427a-b90c-5ed4dae69c9c /              ext4    defaults,noatime 0 1
/dev/mapper/luks-5d00492c-eca3-4863-bf76-d5c0d228d65f swap           swap    defaults   0 0

cryptab

# <name>               <device>                         <password> <options>
luks-624c49b2-5e32-427a-b90c-5ed4dae69c9c UUID=624c49b2-5e32-427a-b90c-5ed4dae69c9c     /crypto_keyfile.bin luks
luks-5d00492c-eca3-4863-bf76-d5c0d228d65f UUID=5d00492c-eca3-4863-bf76-d5c0d228d65f     /crypto_keyfile.bin luks

lsblk

NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
nvme0n1                                       259:0    0 238.5G  0 disk  
├─nvme0n1p1                                   259:1    0   300M  0 part  /boot/efi
├─nvme0n1p2                                   259:2    0 221.3G  0 part  
│ └─luks-624c49b2-5e32-427a-b90c-5ed4dae69c9c 254:0    0 221.3G  0 crypt /
└─nvme0n1p3                                   259:3    0  16.9G  0 part  
  └─luks-5d00492c-eca3-4863-bf76-d5c0d228d65f 254:1    0  16.9G  0 crypt [SWAP]

mkinitcpio.conf

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(piix ide_disk reiserfs)
MODULES=""

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES="/crypto_keyfile.bin"

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No raid, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect block filesystems)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev block filesystems)
#
##   This setup assembles a pata mdadm array with an encrypted root FS.
##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
#    HOOKS=(base udev block mdadm encrypt filesystems)
#
##   This setup loads an lvm2 volume group on a usb device.
#    HOOKS=(base udev block lvm2 filesystems)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keyboard keymap consolefont encrypt openswap resume filesystems fsck"

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

/etc/default/grub

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="EndeavourOS"
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=624c49b2-5e32-427a-b90c-5ed4dae69c9c:luks-624c49b2-5e32-427a-b90c-5ed4dae69c9c root=/dev/mapper/luks-624c49b2-5e32-427a-b90c-5ed4dae69c9c resume=/dev/mapper/luks-5d00492c-eca3-4863-bf76-d5c0d228d65f loglevel=3 nowatchdog nvme_load=YES"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=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=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

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

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
GRUB_THEME=/boot/grub/themes/EndeavourOS/theme.txt

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

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
GRUB_DISABLE_SUBMENU=y

# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
GRUB_DISABLE_OS_PROBER=false
GRUB_ENABLE_CRYPTODISK=y

I did change some of the luks keys: reordering them and changing the iteration count on the main system partition because it takes so darn long to decrypt in grub otherwise. But this was an issue before those changes. I also added the keyfile crypto_keyfile.bin to the swap partition luks keys as well and that made no difference.

Does anyone have any ideas on what steps I could take to solve this?

Relevant thread

This should be the solution here: https://forum.manjaro.org/t/empty-etc-openswap-conf-manjaro-xfce-gnome-21-2-4-5-minimal-220301-linux515-iso-default-install-fde-nohibernation-on-efi-baremetal-or-kvm-boot-device-does-not-exists/106452/3

2 Likes

Recently installed Apollo with a swap partition and full LUKS system encryption and noticed the issue after the first boot.

Figured it out myself this morning on what was wrong and was coming on here to make a similar post and found yours. Question is, is this a problem with the OpenSwap package not creating a default config, or is this an issue with the OS installer?

Found this EOS Forum Post helpful as well when figuring out what was wrong.

Edit:
Seems this person was also experiencing the same issue, but never resolved their problem and the thread closed.

For anyone who arrived here for a solution please note after adding the necessary configs to the openswap.conf file you have to recreate the ramdisk environment by running:

sudo mkinitcpio -P

I don’t think this was mentioned in either of the referenced posts.

1 Like