Red Hat Training

A Red Hat training course is available for RHEL 8

10.4. 使用 LUKS2 加密块设备上的现有数据

这个过程使用 LUKS2 格式加密设备中的数据。新的 LUKS 标头保存在设备的标头中。

先决条件

  • 块设备包含一个文件系统。
  • 已备份了数据。

    警告

    在加密过程中可能会丢失您的数据:由于硬件、内核或人为故障。在开始加密数据之前,请确保您有可靠的备份。

流程

  1. 卸载您要加密的设备中的所有文件系统。例如:

    # umount /dev/sdb1
  2. 为存储 LUKS 标头腾出空间。选择适合您的场景的以下选项之一:

    • 如果是加密逻辑卷,您可以扩展逻辑卷而不重新定义文件系统大小。例如:

      # lvextend -L+32M vg00/lv00
    • 使用分区管理工具(如 parted )扩展分区。
    • 缩小该设备的文件系统。您可以将 resize2fs 实用程序用于 ext2、ext3 或 ext4 文件系统。请注意,您无法缩小 XFS 文件系统。
  3. 初始化加密。例如:

    # cryptsetup reencrypt \ --encrypt \ --init-only \ --reduce-device-size 32M \ /dev/sdb1 sdb1_encrypted

    该命令会要求您输入密码短语并启动加密过程。

  4. 挂载该设备:

    # mount /dev/mapper/sdb1_encrypted /mnt/sdb1_encrypted
  5. 启动在线加密:

    # cryptsetup reencrypt --resume-only /dev/sdb1

其它资源

  • cryptsetup(8)lvextend(8)resize2fs(8)和 parted(8)man page