休眠至加密卷上的交换文件

休眠至加密卷上的交换文件

我在 mdadm raid-0 上的 LUKS 加密分区上安装了 ubuntu 16.04。

我想激活挂起到磁盘。我用过指令(针对未加密分区),但不起作用。计算机关闭但没有恢复,就像硬重启后一样启动。

我可以在配置中设置休眠吗?如果可以,我该怎么做?

答案1

我对此进行了大量测试,发现该问题实际上与加密无关。它不起作用的真正原因仅仅是因为您使用的是交换文件而不是交换分区。请注意末尾的以下内容/usr/share/initramfs-tools/scripts/local-premount/resume

SWAPTYPE=$(wait-for-root "${resume}" ${RESUMEDELAY:-5})

case "${SWAPTYPE}" in
    swsuspend|s1suspend|s2suspend|ulsuspend|tuxonice)
        if [ -x /bin/plymouth ] && plymouth --ping; then
                plymouth message --text="Resuming from $resume"
        fi

        # hardcode path, uswsusp ships an resume binary too
        if [ -n "${resume_offset}" ]; then
                /bin/resume ${resume} ${resume_offset}
        else
                /bin/resume ${resume}
        fi
        ;;
esac

这里,${resume}${resume_offset}具有您在中输入的值/etc/initramfs-tools/conf.d/resume。当它调用时wait-for-root,它会查看分区类型${resume},它不是交换(它是 ext4 或您的根分区的任何类型)。然后,它将其与暂停交换类型列表进行比较,并且(不出所料)没有找到匹配项,因此它不会恢复。看起来他们打算让交换文件正常工作,因为它们${resume_offset}根本不使用,所以这似乎是 Ubuntu 的 initramfs-tools 系统中的一个错误。(编辑:这显然是一个已知问题,如在他们的 SwapFaq 维基页面

作为一种解决方法,您可以在加密分区上使用 LVM,然后将交换分区与根分区一起放在其中,从而避免需要交换文件,这样无需任何特殊步骤即可正常工作。

相关内容