是否有任何实用程序或程序可用于对我现有的实时数据进行 dm-crypt 以进行全磁盘加密

是否有任何实用程序或程序可用于对我现有的实时数据进行 dm-crypt 以进行全磁盘加密

一旦我已经在我的 HDD 上安装了一个正在运行的 Linux 系统,并保存了未加密的实时数据。是否有任何合理的方法可以对整个 HDD 进行适当的 dm 加密? (无需备份然后恢复或转移到新的文件系统。)

如果可以的话有什么办法可以网上办理吗?即能够在一个小时左右的时间内操作我的 Linux 系统,从而加密所有数据?

答案1

如果您 (a) 有足够的可用磁盘空间并且 (b) 使用 LVM,您可以:

  1. 进行备份。
  2. 重新阅读步骤 1,这次不要忽略它。
  3. 重新阅读步骤 1,请记住我还没有实际测试过这一点。不过,它应该可以工作!
  4. 缩小当前物理体积 ( pvresize)
  5. 调整底层分区的大小。不幸的是,为了重新读取分区表,您可能必须重新启动(它正在使用中)。
  6. 创建一个新分区,在其上设置 dm-crypt。在其上放置一个物理卷。
  7. 您现在可以用来pvmove实际在线移动数据。
  8. 在移动过程中,请确保更新 initramfs 以引导加密卷。特别是如果您要加密所有内容。
  9. 准备好恢复磁盘(例如 Live CD)。重新启动,确保它出现
  10. 从卷组中删除旧的 pv,并对其进行安全覆盖。
  11. 您现在也可以在其上设置 dm-crypt,并将其作为第二个 pv 添加到同一个 vg 中。

如果您不使用 LVM,那么它可能毫无希望。您当然可以使用 rsync 将数据从一个文件系统复制到另一个文件系统,但您需要在机器空闲时进行最终同步(否则,当您尝试复制文件时,文件会发生变化)。

答案2

LUKS 就地加密存在。但您需要按照图片稍微设置一下环境:

在此输入图像描述

在此输入图像描述

在此输入图像描述

答案3

工具应该存在,但我无法提供名称或 URL。但如果你不害怕:-)那就一点也不困难。您所要做的就是从未加密的设备读取数据并写入加密的设备。除非您之前调整文件系统的大小以使其小一些,否则您无法使用 LUKS。当然,这不适用于正在安装的设备(即使安装了 ro,也可能不起作用)。核心功能(没有任何防止崩溃的保护)是这样的(是的,我刚刚成功尝试过):

for((i=0;i<100;i++)); do
  echo "Copying block with offset ${i} to tmpfs"
  dd if=/dev/storage2/test of=/mnt/tmpfs/cryptoblock skip=$i bs=10M count=1 &>/dev/null
  echo "Copying block with offset ${i} from tmpfs"
  dd if=/mnt/tmpfs/cryptoblock of=/dev/mapper/crypt_test seek=$i bs=10M count=1
done

明显的改进需求是:将块复制到非易失性介质并记录它们的偏移量。如果发生崩溃,您可以手动复制中断事务的块,并以下一个块的偏移量作为起始值启动循环。

相关内容