![LVM2 在单磁盘系统上有何用处?](https://linux22.com/image/1207607/LVM2%20%E5%9C%A8%E5%8D%95%E7%A3%81%E7%9B%98%E7%B3%BB%E7%BB%9F%E4%B8%8A%E6%9C%89%E4%BD%95%E7%94%A8%E5%A4%84%EF%BC%9F.png)
如果您希望对磁盘进行加密,Ubuntu 20.04 的安装程序会将您引向 LVM + LUKS。我想这样做。但我不确定 LVM 添加了什么。
例如,我选择了简单选项并按此方式安装。它设置了:
- 物理 EFI 分区(537MB – 有点小?)
- 物理扩展分区
- 启动分区 1.5GB
- 卢克斯
- 逻辑卷管理器
- 1GB 交换(很小!)
- 其余部分:/(ext4)
- 逻辑卷管理器
现在我想增加交换空间,但似乎没有任何工具可以轻松完成此操作?LVM 具有许多功能,但似乎要调整其大小,我仍然必须启动以拯救 USB 或类似的东西,只能祈祷好运。至少在过去,我可以在需要时使用 Gparted。
我以为 LVM 有很多很酷的功能,比如实时调整大小、快照等,并且我认为它会受到 GUI 工具(例如 Gnome Disks)的支持,但事实似乎并非如此。
是否有我遗漏的工具集或理由来解释为什么 Ubuntu 的安装程序会提供这个功能,而这似乎只会让事情变得不那么灵活?例如,如果从末尾而不是从开头收缩 ext4,则收缩 ext4 会更容易。
答案1
这样做的原因(我猜测)是他们希望你只需要输入 rypsetup/luks 密码一次。我们需要一些未加密的磁盘(因为 BIOS 不知道如何解锁加密分区/磁盘),即 /boot(如果使用 UEFI,则需要 EFI 分区)。
因此,LUKS 应用于一个分区,但该分区必须包含多个分区;在 Ubuntu(桌面)相当有限但简单的自动设置中,这将是一个交换分区和主根文件系统。
为了将一个分区拆分成多个块设备,我们需要使用 LVM(或者至少 LVM 是可以做到这一点的经过验证的工具)。所以使用 LVM。
加密交换分区是个不错的选择。另一种选择是使用加密根文件系统中的交换文件(实际上我就是这么做的,以便绕过 Ubuntu 创建一个 1GB 的微小交换分区)。
最后,为了完整性,我想在我的 LUKS 分区内设置一组自定义的 LVM 逻辑卷 - 一个用于操作系统,一个用于交换,一个用于家庭。
我从 Live CD 创建了 LUKS 加密和 LVM 结构(参见别处),然后使用安装程序以正常方式指定要使用哪个。然而,这带来了一个问题:因为 Ubuntu 安装程序没有执行自己的 cryptsetup,所以无法创建知道提供 crypt 解锁的 initramfs 映像前寻找 LVM 逻辑卷上的根分区。
通过挂载新安装的系统,使用 initramfs 参数设置 /etc/crypttab 可以解决这个问题,如下所示:
crypto UUID=1111-2222-3333-4444 none luks,discard,initramfs
...并添加CRYPTSETUP=y
到/etc/cryptsetup-initramfs/conf-hook
(这些提示来自unix.SE 答案)