По сути, эта настройка не будет работать OOTB, потому что вам нужно смонтировать какой-то раздел (, в данном случае /boot/ )на этапе initramfs/initrd, и по умолчанию там не смонтирован раздел. Без раздела /boot/ вы не можете использовать заголовок LUKS. Таким образом, единственный способ заставить его работать — это написать несколько пользовательских сценариев, которые будут монтировать/размонтировать раздел на этапе initramfs/initrd .
Мне удалось написать несколько инструкций на эту тему , и установка работает очень хорошо.
Я нашел решение. По-видимому, проблема заключалась в пакете polkit
, который определяет политики для пользователей на выключение, перезагрузку, приостановку, переход в спящий режим и т. д.
Поскольку у меня не было файла правил в /etc/polkit-1/rules.d
, по умолчанию не разрешается пользователям переходить в спящий режим или приостанавливать работу машины, пока пользователь вошел в систему. (Я считаю, что проблема здесь в том, что я блокирую машину перед переходом в спящий режим., и, следовательно, существует открытая сессия)
Чтобы решить эту проблему, мне пришлось создать файл /etc/polkit-1/rules.d/99-allow-hibernate-on-low-battery.rules
со следующим содержимым:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions") {
return polkit.Result.YES;
}
});
После этого cron
и at
могут корректно переводить компьютер в спящий режим