You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LUKS2设备在线重加密提示不支持该设备类型的问题求助

解决LUKS2在线重加密报错:This operation is not supported for this device type.

问题原因

你遇到的错误确实是因为Ubuntu 20.04默认提供的cryptsetup 2.2.2版本未启用LUKS2在线重加密的编译宏(USE_LUKS2_REENCRYPTION)。在cryptsetup 2.2.x分支中,LUKS2在线重加密属于实验性功能,默认编译时不会开启该选项,导致执行cryptsetup reencrypt --active-name时触发设备类型不支持的错误。

验证当前编译选项

可以通过以下命令确认你的cryptsetup是否支持LUKS2在线重加密:

cryptsetup --version --debug | grep -i reencrypt

如果输出中没有LUKS2_REENCRYPTION相关标识,说明当前版本确实未启用该功能。

解决方法

方法1:重新编译cryptsetup并启用LUKS2在线重加密

  1. 安装编译依赖:
    sudo apt update && sudo apt install build-essential libdevmapper-dev libgcrypt20-dev libjson-c-dev libuuid-dev pkg-config
    
  2. 下载cryptsetup 2.2.x分支的最新稳定版(推荐2.2.5,比2.2.2修复了更多问题):
    wget https://gitlab.com/cryptsetup/cryptsetup/-/archive/v2.2.5/cryptsetup-v2.2.5.tar.gz
    tar -xf cryptsetup-v2.2.5.tar.gz && cd cryptsetup-v2.2.5
    
  3. 配置编译选项,显式启用LUKS2在线重加密:
    ./configure --enable-luks2-reencryption
    
  4. 编译并安装:
    make -j$(nproc)
    sudo make install
    
  5. 验证新版本是否支持:
    cryptsetup --version --debug | grep -i reencrypt
    
    此时应该能看到LUKS2_REENCRYPTION相关输出。

方法2:升级到更高版本的cryptsetup

cryptsetup 2.3.0及以上版本默认启用了LUKS2在线重加密功能。你可以通过手动编译更高版本来解决:

  • 步骤和方法1类似,只需下载2.3.x或更高版本的源码,无需额外指定--enable-luks2-reencryption选项,默认已开启。

注意事项

  • 执行在线重加密前,确保LUKS2设备已正确激活(--active-name指定的是/dev/mapper/下的映射设备名,而非原始块设备路径)。
  • 操作前务必备份重要数据,重加密过程中若出现中断可能导致数据损坏。

内容的提问来源于stack exchange,提问作者zzcai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:00:17