为“cryptsetup: WARNING: Option 'size' missing in crypttab for plain dm-crypt mapping root”消息设置正确的大小

mar*_*nuy 8 encryption ecryptfs cryptsetup 18.10

我使用 进行了全盘加密ecryptfs,升级到18.10后,启动时开始出现警告消息:

cryptsetup: 警告: crypttab 中缺少用于普通 dm-crypt 映射根的选项“size”。请阅读 /usr/share/doc/cryptsetup/README.initramfs 并将正确的“大小”选项添加到您的 crypttab(5)。

从我看到的/usr/share/doc/cryptsetup-initramfs/README.initramfs.gz我应该编辑/etc/cryptsetup并设置正确的大小,但是应该如何为我的系统计算这个大小

这是内容/etc/crypttab

 cryptswap1 UUID=1d1XXXXXXXXXXXX /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Run Code Online (Sandbox Code Playgroud)

mar*_*nuy 7

将大小添加size=256/etc/crypttab配置中:

cryptswap1 UUID=1d1XXXXXXXXXXXX /dev/urandom swap,offset=1024,cipher=aes-xts-plain64,size=256
Run Code Online (Sandbox Code Playgroud)

  • 您询问这个尺寸应该如何计算,然后发布一个根本没有解释如何计算这个尺寸的答案并将其标记为正确答案?到目前为止,没有人在这个线程中回答如何计算这个大小。请将其添加到您的答案中:) (3认同)

Dim*_* II 5

对于我来说,编辑“crypttab”文件还不够(升级到 Ubuntu 20.04)。

编辑文件后,我必须禁用(临时)交换文件并重新生成 initramfs 映像:

sudo swapoff -a
sudo update-initramfs -c -k all
sudo swapon -a
Run Code Online (Sandbox Code Playgroud)

不幸的是,每次内核更新后都应该重复该步骤。

  • 现在有一个错误报告(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1903920)。 (3认同)

Jon*_*rad 5

(为了给出这个问题的完整答案,我发布了这个问题,作为marcanuy 自己的答案的扩展。)

注意:(上面)考虑的警告源于Debian Cryptsetup Initramfs 集成

  1. 找到相关加密密钥的大小。因此,让我们询问 cryptsetup 本身(对我来说,问题已经出现在 /dev/sda5 上的加密交换分区上):

    $ sudo cryptsetup 状态 cryptswap1  
    /dev/mapper/cryptswap1 处于活动状态并且正在使用中。  
    类型: 普通  
    密码:aes-xts-plain64  
    密钥大小:256 位
    关键位置:dm-crypt
    设备:/dev/sda5  
    [...]  
    
  2. keysizetype)。

  3. 如果type: PLAIN,将大小(从上面获取)添加到 /etc/crypttab 中的相应条目(如 sudo):

    cryptroot /dev/sda5 无 密码=aes-xts-plain64,大小=256,哈希=sha1
    

    对于交换分区,该条目可能看起来略有不同(例如,用作/dev/urandom(随机)密钥文件)

  4. 重新生成 initramfs(内核更新时不必重新生成):

    $ sudo update-initramfs -u
    
    Run Code Online (Sandbox Code Playgroud)

    这可能会引发警告,据我所知可以忽略该警告。size然而,有关启动时缺少选项的警告应该已经消失。

  5. 最后,重新启动以验证一切按预期工作并且警告已消失。

备注:对于type: LUKS, /etc/crypttab 实际上应该如下所示,因为大多数信息可以从强制 LUKS 标头中读取:

cryptroot /dev/sdaX 无luks,丢弃