17.4. 使用 LUKS2 加密块设备上的现有数据
您可以使用 LUKS2 格式在尚未加密的设备上加密现有数据。新的 LUKS 标头保存在设备的标头中。
先决条件
- 块设备有一个文件系统。
已备份了数据。
警告由于硬件、内核或人为故障,您可能会在加密过程中丢失数据。在开始加密数据之前,请确保您有可靠的备份。
流程
卸载您要加密的设备上的所有文件系统,例如:
umount /dev/mapper/vg00-lv00
# umount /dev/mapper/vg00-lv00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为存储 LUKS 标头腾出空间。使用以下适合您场景的选项之一:
如果是加密逻辑卷,您可以扩展逻辑卷而无需调整文件系统的大小。例如:
lvextend -L+32M /dev/mapper/vg00-lv00
# lvextend -L+32M /dev/mapper/vg00-lv00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用分区管理工具(如
parted
)扩展分区。 -
缩小该设备的文件系统。您可以对 ext2、ext3 或 ext4 文件系统使用
resize2fs
工具。请注意,您无法缩小 XFS 文件系统。
初始化加密:
cryptsetup reencrypt --encrypt --init-only --reduce-device-size 32M /dev/mapper/vg00-lv00 lv00_encrypted
# cryptsetup reencrypt --encrypt --init-only --reduce-device-size 32M /dev/mapper/vg00-lv00 lv00_encrypted /dev/mapper/lv00_encrypted is now active and ready for online encryption.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载该设备:
mount /dev/mapper/lv00_encrypted /mnt/lv00_encrypted
# mount /dev/mapper/lv00_encrypted /mnt/lv00_encrypted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向
/etc/crypttab
文件添加持久映射的一个条目:查找
luksUUID
:cryptsetup luksUUID /dev/mapper/vg00-lv00
# cryptsetup luksUUID /dev/mapper/vg00-lv00 a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您选择的文本编辑器中打开
/etc/crypttab
,并在此文件中添加设备:vi /etc/crypttab
$ vi /etc/crypttab lv00_encrypted UUID=a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 none
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 替换为您设备的
luksUUID
。使用
dracut
刷新 initramfs:dracut -f --regenerate-all
$ dracut -f --regenerate-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
如果
/etc/fstab
文件中存在这个设备的条目,请确定使用文件系统 UUID,而不是设备名称。 恢复在线加密:
cryptsetup reencrypt --resume-only /dev/mapper/vg00-lv00
# cryptsetup reencrypt --resume-only /dev/mapper/vg00-lv00 Enter passphrase for /dev/mapper/vg00-lv00: Auto-detected active dm device 'lv00_encrypted' for data device /dev/mapper/vg00-lv00. Finished, time 00:31.130, 10272 MiB written, speed 330.0 MiB/s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证现有数据是否已加密:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看加密的空白块设备的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow