从 LUKS 迁移到 LUKS + LVM

从 LUKS 迁移到 LUKS + LVM

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

本文记录了作者从LUKS迁移到LUKS + LVM的过程,解决了加密交换分区无法休眠的问题。作者备份数据,删除原有分区,建立新的分区,创建LUKS容器和LVM逻辑卷,最后恢复数据。系统成功实现休眠和唤醒。

🔎

延伸解读

加密交换分区与休眠的兼容性问题

文章指出,使用随机密钥加密的交换分区在休眠后无法恢复,因为密钥仅存于内存,断电即丢失。这导致系统无法从休眠中唤醒,且systemd会因等待交换分区而超时,造成启动延迟。作者的经历表明,若需休眠功能,交换分区必须使用持久密钥加密,而LUKS+LVM方案通过将交换分区置于LUKS容器内,解决了这一问题。

LUKS+LVM方案的技术优势

LUKS提供密钥管理,LVM则允许在加密容器内灵活划分逻辑卷。作者将LVM叠加在LUKS之上,创建root和swap两个LV,使交换分区与根分区共享同一加密容器。这样,系统启动时只需解锁一次LUKS,即可同时访问root和swap,且swap的密钥持久存在,支持休眠。此外,LVM还带来快照、动态调整等潜在好处。

迁移过程中的备份与恢复策略

作者使用BorgBackup备份LUKS解密后的明文块设备,利用其去重和压缩功能,将235 GiB数据压缩至162 GiB,存储于未加密的移动硬盘。恢复时通过管道将归档写回新块设备。这种方法避免了直接复制加密数据或创建临时加密容器的麻烦,且Borg仓库本身加密,保障了数据安全。迁移后需更新内核参数中的LUKS UUID,并确保initrd包含LVM模块。

❓

Q&A

LUKS和LVM的结合有什么优势?

LUKS和LVM结合后,可以灵活地管理逻辑卷,解决加密交换分区无法休眠的问题,并提供快照等功能。

如何备份LUKS加密分区的数据?

可以使用BorgBackup直接读取LUKS解密后的明文块设备进行备份,确保数据安全。

迁移到LUKS + LVM的步骤是什么?

迁移步骤包括备份数据、删除原有分区、创建新的LUKS容器和LVM逻辑卷,最后恢复数据。

加密交换分区无法休眠的原因是什么?

加密交换分区使用随机密钥,断电后密钥丢失,导致系统无法恢复到之前的状态。

如何解决systemd等待交换分区的问题?

可以通过创建一个新的交换分区并更新UUID来解决systemd等待的问题。

LVM的主要功能是什么?

LVM主要用于在块设备上灵活地映射多个逻辑卷,允许动态调整和提供快照功能。

🏷️

标签

➡️

继续阅读