现有 Linux 系统中的全盘加密,无需擦除驱动器中的任何内容

Gov*_*kar 5 linux encryption hard-drive partitioning disk-encryption

我正在尝试在已安装的 Linux 系统中实现“全盘加密”。我遇到过带有 dm-crypt 的 LUKS,它可以加密驱动器/整个磁盘,但在加密之前先格式化驱动器,并且所有数据都将被永久删除。

由于我需要为现有和成熟的 Linux 机器(例如 Ubuntu、centOS)进行“全盘加密”,因此我无法负担驱动器/分区的格式化。是否有任何可能的方法可以在不丢失系统中现有内容的情况下进行“全盘加密”。

我对这些概念很陌生,因此任何适当的指导都会有很大帮助。谢谢!!

小智 8

首先,您需要将分区缩小 1028 KB(略大于 1 MB)。我建议将其缩小 4 MB。在操作之前卸载您的分区。

对于 ext4:

sudo dumpe2fs /dev/sdd1|grep 'Block count'
Run Code Online (Sandbox Code Playgroud)

从此值中减去 1024(假设您有 4KB 块),然后执行:

sudo resize2fs /dev/sdd1 new_value
Run Code Online (Sandbox Code Playgroud)

然后加密:

sudo cryptsetup-reencrypt -N --reduce-device-size 4M /dev/sdd1
Run Code Online (Sandbox Code Playgroud)

  • 这应该标记为答案!我验证这些步骤适用于加密现有的 ext4 文件系统(不是 root)。请注意,ETA 仅在执行 `cryptsetup-reencrypt` 后才可用,在我的情况下将近 8 小时。确保您可以在大分区上让系统保持一段时间不受干扰:`完成,时间 468:50.978,写入 953864 MiB,速度 33.9 MiB/s` 请参阅[此处](https://unix.stackexchange.com/questions/ 182387/how-to-mount-a-disk-encrypted-with-cryptsetupcrypto-luks-in-ubuntu-14-04)获取安装说明。 (2认同)

lin*_*013 0

我很快想到了两个选择:

  1. 安装 cryptsetup-重新加密。使用您需要/想要的标志对其进行重新加密(这只会与 LUKS 设备混淆,而不与底层文件系统(fs)混淆,无论它是什么 ext2/3/4、xfs 等)。

  2. 解锁(启动和运行)时备份所有内容,或者作为第二个驱动器的安装dd或选项,然后根据需要重建。rsync