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)
将大小添加size=256到/etc/crypttab配置中:
cryptswap1 UUID=1d1XXXXXXXXXXXX /dev/urandom swap,offset=1024,cipher=aes-xts-plain64,size=256
Run Code Online (Sandbox Code Playgroud)
对于我来说,编辑“crypttab”文件还不够(升级到 Ubuntu 20.04)。
编辑文件后,我必须禁用(临时)交换文件并重新生成 initramfs 映像:
sudo swapoff -a
sudo update-initramfs -c -k all
sudo swapon -a
Run Code Online (Sandbox Code Playgroud)
不幸的是,每次内核更新后都应该重复该步骤。
(为了给出这个问题的完整答案,我发布了这个问题,作为marcanuy 自己的答案的扩展。)
注意:(上面)考虑的警告源于Debian Cryptsetup Initramfs 集成。
找到相关加密密钥的大小。因此,让我们询问 cryptsetup 本身(对我来说,问题已经出现在 /dev/sda5 上的加密交换分区上):
$ sudo cryptsetup 状态 cryptswap1 /dev/mapper/cryptswap1 处于活动状态并且正在使用中。 类型: 普通 密码:aes-xts-plain64 密钥大小:256 位 关键位置:dm-crypt 设备:/dev/sda5 [...]
读keysize和type)。
如果type: PLAIN,将大小(从上面获取)添加到 /etc/crypttab 中的相应条目(如 sudo):
cryptroot /dev/sda5 无 密码=aes-xts-plain64,大小=256,哈希=sha1
对于交换分区,该条目可能看起来略有不同(例如,用作/dev/urandom(随机)密钥文件)
重新生成 initramfs(内核更新时不必重新生成):
$ sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
这可能会引发警告,据我所知可以忽略该警告。size然而,有关启动时缺少选项的警告应该已经消失。
最后,重新启动以验证一切按预期工作并且警告已消失。
备注:对于type: LUKS, /etc/crypttab 实际上应该如下所示,因为大多数信息可以从强制 LUKS 标头中读取:
cryptroot /dev/sdaX 无luks,丢弃