休眠后文件系统损坏

休眠后文件系统损坏

每次休眠过程后,我都会得到一个损坏的根文件系统。我的设置是 LVM 上的 LUKS 加密根和交换分区。我对根文件系统使用 GPG 加密密钥,并在根分区上使用未加密的密钥文件进行交换解密。 initramfs 由 genkernel 生成

genkernel --lvm --luks --gpg initramfs

对于休眠设置,我遵循了Gentoo 维基。我尝试使用

pm-hibernate
s2disk -r /dev/mapper/swap
echo disk > /sys/power/state

但所有这些都会导致根分区损坏。我没有使用 tuxonice,因为(据我所知)我需要切换到其他内核源或应用补丁。

系统:

Gentoo
Kernel 4.9.6-gentoo-r1
genkernel 3.4.52.4-r2
pm-utils 1.4.1-r7

磁盘布局:

NAME         MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda            8:0    0  477G  0 disk  
├─sda2         8:2    0  128M  0 part  /boot
├─sda3         8:3    0  410G  0 part  
│ ├─vg1-swap 253:1    0   30G  0 lvm   
│ │ └─swap   253:3    0   30G  0 crypt [SWAP]
│ └─vg1-root 253:0    0  380G  0 lvm   
│   └─root   253:2    0  380G  0 crypt /
└─sda1         8:1    0    2M  0 part  

答案1

我对根文件系统使用 GPG 加密密钥,并在根分区上使用未加密的密钥文件进行交换解密。

这是否意味着您必须安装根文件系统才能解密交换?如果是这样,这可能是导致您出现问题的原因。在休眠状态下,您不允许访问(写入)文件系统(因为它们仍由休眠系统“挂载”)。

https://www.kernel.org/doc/Documentation/power/swsusp.txt

 * BIG FAT WARNING *********************************************************
 *
 * If you touch anything on disk between suspend and resume...
 *              ...kiss your data goodbye.
 *
 * If you do resume from initrd after your filesystems are mounted...
 *              ...bye bye root partition.
 *          [this is actually same case as above]
 *

休眠是一件非常危险的事情,基本上你必须希望无论你的 Initramfs 风格如何都能正确处理所有情况。最好使用普通的交换分区,无需任何恶作剧即可到达。

相关内容