Lvm

休眠後損壞的文件系統

  • March 8, 2018

在每個休眠過程之後,我都會得到一個損壞的根文件系統。我的設置是 LVM 上的 LUKS 加密根和交換分區。我對根文件系統使用 GPG 加密密鑰,在根分區上使用未加密密鑰文件進行交換解密。initramfs 由 genkernel 生成

genkernel --lvm --luks --gpg initramfs

對於休眠設置,我遵循了Gentoo Wiki。我嘗試使用

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

但都會導致根分區損壞。我沒有使用 tuxonice 作為(afaik)我需要切換到其他核心源或應用更新檔。

系統:

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  

我對根文件系統使用 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 風格能夠正確處理所有情況。最好使用無需任何惡作劇即可訪問的普通交換分區。

引用自:https://unix.stackexchange.com/questions/347895