目前我的设置是:
- 密码设置
- 左室厚度
- 根
- 家
- 交换
- 左室厚度
我想实现类似的目标
- 密码设置
- 左室厚度
- 根
- 家
- 左室厚度
- 交换(一次性密钥)
我正在考虑的步骤是:
- 删除交换(可以)
- 收缩LVM本身(不能做)
- 使用一次性密钥创建交换(有些可以做)
但是,我在想,有没有办法将分区“移动”到 LVM 之外?我确定它位于单个驱动器上,并且从未调整过大小,因此它应该是连续的。
答案1
LVM 里面有什么LVM 逻辑卷, 不是分区。逻辑卷(简称LV)不能存在于LVM卷组之外。
在不移动数据的情况下将 LV 转换为分区需要删除 LV 配置并减小 LVM PV 大小而不覆盖前 LV 的数据块,最后将分区表调整为 1) 减小包含 LVM 的分区的大小PV,并 2) 在前一个 LV 的数据块周围定义一个新分区。如果没有加密,这在技术上是可行的,尽管我认为没有可用的工具,因此需要仔细使用各个命令。
但是,由于您要将 LV 的内容从cryptsetup
容器内部移动到容器外部(并移动到另一个cryptsetup
容器中),因此上述过程没有任何意义:如果在没有原始cryptsetup
容器的主密钥的情况下进行访问,则实际的磁盘块将毫无用处加密的乱码。
但由于您要移动交换分区,因此不需要迁移数据。
您实际需要执行的步骤是:
- 删除交换(禁用交换
swapoff
,删除交换 LVlvremove
,删除对它的引用/etc/fstab
) - 使用 缩小 LVM PV
pvresize <PV device> --setphysicalvolumesize <new-size>
。如果这不能顺利完成,不要再继续了而不先解决问题。 cryptsetup
用收缩容器cryptsetup --size <new-size> resize <PV device>
。请务必确保该容器的收缩程度不会超过 LVM PV 的收缩程度 - 您不想暴力地切断活动 PV 的尾部。- 编辑分区表以缩小包含容器的分区
cryptsetup
。请务必确保分区的收缩程度不超过cryptsetup
容器的收缩程度。partprobe /dev/sda
此时您可能必须运行或重新启动才能使更改完全生效。 cryptsetup
编辑分区表为第二个容器创建新分区cryptsetup
创建一个脚本或其他配置,该脚本或其他配置将使用随机密钥初始化第二个容器并mkswap
在每次启动时在其上运行。您的 Linux 发行版可能已经有一些工具可以让这变得更容易。确保这按预期工作。- 将新加密交换分区的引用添加到
/etc/fstab
. - 运行
swapon -a
或重新启动以验证其是否按预期工作。