如何定制“cryptroot”脚本?

如何定制“cryptroot”脚本?

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

我是 Ubuntu(以及一般的 Linux)的新手,但我做了一些尝试和错误,修改了在初始化系统映像使用更新-initramfs。 这隐根脚本最初似乎负责挂载分区的所有工作,但经过一些实验后,它似乎只负责解密根文件系统。我修改了脚本中的一个字符串,将其更改为输入密码简单地密码,这在解密根文件系统时似乎有效,但在解密下一个分区时再次使用旧提示。换句话说,这就是我得到的结果:

  1. 隐根脚本加载。
  2. 该脚本要求输入密码来解密密钥分区并挂载它。
  3. 该脚本调用设置映射函数来解密根文件系统。
  4. 该脚本尝试从密钥分区读取密钥文件来解密根文件系统。
  5. 根文件系统已解密并挂载。
  6. 系统提示输入密码来解密下一个分区…

我认为 Ubuntu 可能正在运行隐根脚本在某处解密根目录之后的所有其他分区,但我不知道还要修改什么。

答案1

首先,找出 在哪里cryptroot,哪个包提供了cryptroot,以及包中还有什么(源代码、文档、示例……)。因此:

walt@squid:~(0)$ locate cryptroot
/usr/share/initramfs-tools/hooks/cryptroot
/usr/share/initramfs-tools/scripts/local-top/cryptroot
walt@squid:~(0)$ dpkg -S !$
dpkg -S cryptroot
cryptsetup: /usr/share/initramfs-tools/hooks/cryptroot
cryptsetup: /usr/share/initramfs-tools/scripts/local-top/cryptroot
walt@squid:~(0)$ dpkg -L cryptsetup
...

相关内容