首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到20.04之后: luks在启动时不会打开我的磁盘;cryptroot/crypttab是空的,密码安装程序不识别crypttab条目

升级到20.04之后: luks在启动时不会打开我的磁盘;cryptroot/crypttab是空的,密码安装程序不识别crypttab条目
EN

Ask Ubuntu用户
提问于 2020-08-21 11:13:25
回答 2查看 11.1K关注 0票数 5

升级到20.04之后,我的加密磁盘在引导时不会被解密。我没有被要求提供任何密码,所以它显然找不到任何分区并引导到initrd提示符。

原因可能是: initrd映像中的/cryptroot/crypttab完全是空的。

我可以手动打开luks和色度进入系统。这是我的/etc/crypttab在实际根目录中的内容:

nvme0n1p3_crypt UUID=<some uuid> none luks

(UUID在任何地方都是正确的)

当我运行update-initramfs -c -k all时,输出是:

cryptsetup: WARNING: target 'nvme0n1p3_crypt' not found in /etc/crypttab

这有点奇怪,因为它正是该文件中唯一一个条目的目标名称。它在/dev/mapper中也被列为指向../dm-0的链接,这似乎也是正确的。

我尝试将设备重命名为crypt,只使用dmsetup rename ...,但这当然没有帮助。

我认为这是我问题的根本原因。

EN

回答 2

Ask Ubuntu用户

发布于 2020-08-21 14:04:29

我已经修好了。太奇怪了,如果没人告诉我,我是永远也不会知道的。

问题在于文件/etc/crypttab:它需要一个EOF在最后!

哇哦!这怎么可能呢?这是过去25年来某些linux需要在文本文件中配置EOF的第一次。天哪!

不管怎么说,经过一周多的测试,现在已经修好了。

票数 8
EN

Ask Ubuntu用户

发布于 2020-11-01 00:26:13

下面是生成例程:https://salsa.debian.org/gpiccoli/cryptsetup/-/blob/master/debian/functions#L526

另一个问题(其他人可能会说是有意的)是,您的/etc/crypttab目标(= name)必须是当前用于生成initramfs的根的目标。

如果你:

luks open foo mount /dev/mapper/foo chroot update-initramfs

那么foo's etc/crypttab's TARGET也必须是foo,否则您会看到:

cryptsetup: WARNING: target 'foo' not found in /etc/crypttab

尽管在update-initramfs -v中几乎看不到它。

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1268943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档