如何将交换从加密的lvm转移到一次性密钥?

如何将交换从加密的lvm转移到一次性密钥?

目前我的设置是:

  • 密码设置
    • 左室厚度
      • 交换

我想实现类似的目标

  • 密码设置
    • 左室厚度
  • 交换(一次性密钥)

我正在考虑的步骤是:

  1. 删除交换(可以)
  2. 收缩LVM本身(不能做)
  3. 使用一次性密钥创建交换(有些可以做)

但是,我在想,有没有办法将分区“移动”到 LVM 之外?我确定它位于单个驱动器上,并且从未调整过大小,因此它应该是连续的。

答案1

LVM 里面有什么LVM 逻辑卷, 不是分区。逻辑卷(简称LV)不能存在于LVM卷组之外。

在不移动数据的情况下将 LV 转换为分区需要删除 LV 配置并减小 LVM PV 大小而不覆盖前 LV 的数据块,最后将分区表调整为 1) 减小包含 LVM 的分区的大小PV,并 2) 在前一个 LV 的数据块周围定义一个新分区。如果没有加密,这在技术上是可行的,尽管我认为没有可用的工具,因此需要仔细使用各个命令。

但是,由于您要将 LV 的内容从cryptsetup容器内部移动到容器外部(并移动到另一个cryptsetup容器中),因此上述过程没有任何意义:如果在没有原始cryptsetup容器的主密钥的情况下进行访问,则实际的磁盘块将毫无用处加密的乱码。

但由于您要移动交换分区,因此不需要迁移数据。

您实际需要执行的步骤是:

  1. 删除交换(禁用交换swapoff,删除交换 LV lvremove,删除对它的引用/etc/fstab
  2. 使用 缩小 LVM PV pvresize <PV device> --setphysicalvolumesize <new-size>。如果这不能顺利完成,不要再继续了而不先解决问题。
  3. cryptsetup用收缩容器cryptsetup --size <new-size> resize <PV device>。请务必确保该容器的收缩程度不会超过 LVM PV 的收缩程度 - 您不想暴力地切断活动 PV 的尾部。
  4. 编辑分区表以缩小包含容器的分区cryptsetup。请务必确保分区的收缩程度不超过cryptsetup容器的收缩程度。partprobe /dev/sda此时您可能必须运行或重新启动才能使更改完全生效。
  5. cryptsetup编辑分区表为第二个容器创建新分区
  6. cryptsetup创建一个脚本或其他配置,该脚本或其他配置将使用随机密钥初始化第二个容器并mkswap在每次启动时在其上运行。您的 Linux 发行版可能已经有一些工具可以让这变得更容易。确保这按预期工作。
  7. 将新加密交换分区的引用添加到/etc/fstab.
  8. 运行swapon -a或重新启动以验证其是否按预期工作。

相关内容