升级到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 ...,但这当然没有帮助。
我认为这是我问题的根本原因。
发布于 2020-08-21 14:04:29
我已经修好了。太奇怪了,如果没人告诉我,我是永远也不会知道的。
问题在于文件/etc/crypttab:它需要一个EOF在最后!
哇哦!这怎么可能呢?这是过去25年来某些linux需要在文本文件中配置EOF的第一次。天哪!
不管怎么说,经过一周多的测试,现在已经修好了。
发布于 2020-11-01 00:26:13
下面是生成例程:https://salsa.debian.org/gpiccoli/cryptsetup/-/blob/master/debian/functions#L526
另一个问题(其他人可能会说是有意的)是,您的/etc/crypttab目标(= name)必须是当前用于生成initramfs的根的目标。
如果你:
luks openfoomount /dev/mapper/foochrootupdate-initramfs
那么foo's etc/crypttab's TARGET也必须是foo,否则您会看到:
cryptsetup: WARNING: target 'foo' not found in /etc/crypttab
尽管在update-initramfs -v中几乎看不到它。
https://askubuntu.com/questions/1268943
复制相似问题