我有一个未加密 ext4 的外部 USB 磁盘:
/dev/sda1 3.6T 2.9T 613G 83% /data
我希望加密这个磁盘而不丢失数据。我将此磁盘从 Raspberry3 迁移到 Raspberry4,因为我现在希望加密更好的性能。
我阅读了有关Filesystem 堆栈级加密和Block device-level encryption 的信息,但似乎 LUKS 是最安全的和 Debian 标准。
我阅读了本指南:
警告!以下命令将删除您正在加密的分区上的所有数据。您将丢失所有信息!因此,请确保在键入以下任何命令之前将数据备份到外部源,例如 NAS 或硬盘。
# cryptsetup -y -v luksFormat /dev/xvdc
我无法将 4 TB 数据复制到另一个磁盘,因为我没有这么大容量的磁盘。
如何在不备份/恢复现有数据的情况下加密此磁盘?可能吗?
这是可能的,但对于所有就地转换,都存在一定的数据丢失风险。
要为 LUKS 标头腾出空间,除非您打算使用外部标头,否则您必须首先缩小文件系统(
resize2fs
如果它是 ext4)。对于 LUKS1,您应该将其缩小 2MiB。对于 LUKS2,您可以将其缩小 4M、16M 或最多 64M。如果您打算使用高级功能(dm-integrity),您可能需要进一步缩小它。除了缩小之外,如果磁盘分区布局允许,您也可以使分区更大。
使用离线实用程序加密现有数据
cryptsetup-reencrypt
:(并非所有发行版都安装,可能在单独的包中,否则从源代码获取)使用
cryptsetup reencrypt
LUKS2 在线:因此,只要在整个过程中没有发生电源或电缆故障,这就行得通。
正如
cryptsetup-reencrypt
手册页所说:在使用此工具之前,请始终确保您有可靠的备份。