LINUX.ORG.RU

Помогите с настройкой гибернации в генте (своп на LVM on LUKS)

 , , ,


2

2

Вот вся инфа, которую догадался предоставить.

# zcat /proc/config.gz | grep HIBER
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y

# zcat /proc/config.gz | grep SUSP
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_SUSPEND_SKIP_SYNC is not set
# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set

# cat /proc/cmdline
BOOT_IMAGE=/kernel-genkernel-x86_64-4.16.2-gentoo root=/dev/mapper/lvm-root ro crypt_root=UUID=74f4955f-b422-4abe-8bcf-8329919222aa dolvm real_root=UUID=bbd59fba-ed35-4289-86a1-5c16106f2317 real_resume=UUID=a6401d1c-1769-45b0-b582-8b16e238f6bf

# lsblk -o name,type,mountpoint
NAME           TYPE  MOUNTPOINT
sda            disk 
├─sda1         part  /boot/efi
├─sda2         part 
│ └─cboot      crypt /boot
└─sda3         part 
  └─root       crypt
    ├─lvm-swap lvm   [SWAP]
    ├─lvm-root lvm   /
    └─lvm-home lvm   /home
sr0            rom 

Ядро собирал генкернелом. Как видно, своп располагается в довольно труднодоступном месте.

Что я понял из процесса загрузки: сначала грубом грузится ядро, чё-то там своё делает, потом передаёт руль initramfs, который просит у меня пароль от рута, разблокирует его и получает-таки доступ к заветному свопу, на который s2disk в прошлый раз уложил (кстати, вроде бы вполне успешно) систему спать.

Судя по всему, initramfs свою функцию выполняет, т.к. после ввода пароля я замечаю в летящем вверх логе что-то про real_resume, обнаруженный на /dev/dm-1, а ещё убеждаюсь, что initramfs успел записать этот самый /dev/dm-1 в /sys/power/resume (в чём я убеждаюсь чуть позже, после провала resume):

# cat /sys/power/resume
253:1
# file /dev/dm-1
/dev/dm-1: block special (253/1) 
Тем не менее, лог продолжает лететь вверх, а мне всучивают новую систему, нагло игнорируя содержимое свопа и ломая мне неотмонтированные при уходе баиньки файловые системы.

Я точно не знаю, что здесь не так и почему лыжи не едут, но у меня есть несколько гипотез:

1) «253:1» - не совсем тот формат, который нужен в новых модных ядрах линя (у меня 4.16.2, если что)

2) запись в /sys/power/resume происходит невовремя (например, когда примонтирован настоящий рут, или, наоборот, не примонтирован)

3) просто кривые конфиги ядра

Короче, если у кого есть идеи, куда двигаться, или если кто такую систему уже заставлял выходить из гибернации, то прошу поделиться.

Я ещё слышал, что существуют разные виды саспенда, типа TuxOnIce и swsusp, нифига не понял, чем они отличаются, и пришёл к выводу, что у меня swsusp, исходя из структуры каталогов на /sys. Если это не так, то я вообще не в ту сторону думаю, тогда проясните мне ситуацию.