标签: cryptroot

如何自定义“cryptroot”脚本?

我有一个系统,其中除/boot之外的所有分区(//homeswap)都已加密。/boot驻留在外部设备中,该设备还包含一组用于自动解密所有分区的加密密钥文件。换句话说,我想要的最终结果是使用外部设备和密码进行 2 因素身份验证,其中密码将在启动期间输入一次,启动脚本将使用该密码解密所有分区。

我是 Ubuntu(以及一般的 Linux)的新手,但我使用update-initramfs修改了initrd.img 中的各种脚本。该cryptroot脚本似乎在做所有的工作挂载分区在第一,但一些尝试后,似乎它只是用于解密根文件系统负责。我修改了脚本中的一个字符串,将Enter the passphrase更改为简单的Password,这在解密根文件系统时似乎有效,但再次使用旧提示来解密下一个分区。换句话说,这就是我得到的:

  1. cryptroot脚本加载。
  2. 该脚本要求输入密码来解密密钥分区并安装它。
  3. 该脚本调用setup_mapping函数来解密根文件系统。
  4. 该脚本尝试从密钥分区读取密钥文件以解密根文件系统。
  5. 根文件系统被解密并挂载。
  6. 系统提示输入密码来解密下一个分区……

我认为 Ubuntu 可能正在某处运行cryptroot脚本的另一个副本来解密 root 之后的所有其他分区,但我不知道还有什么要修改的。

encryption source-code initramfs 12.04 cryptroot

5
推荐指数
1
解决办法
3916
查看次数

升级到 20.04 后:luks 在启动时不会打开我的磁盘;cryptroot/crypttab 为空,cryptsetup 无法识别 crypttab 条目

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

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

我可以手动打开 luks 并 chroot 进入系统。这是我/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 ...但这当然没有帮助。

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

luks initramfs cryptroot cryptsetup initrd

4
推荐指数
2
解决办法
3618
查看次数