使用 dm-crypt 进行全盘加密(无 LUKS)

Row*_*wen 8 ubuntu encryption dm-crypt

我目前正在尝试在没有 LUKS 标头的纯模式下使用 dm-crypt 实现全盘加密,并/boot在 U 盘上使用单独的 USB 记忆棒。

我的主要目标是在基于 Debian 的发行版上实现合理的否认。现在我已经设法使用加密分区cryptsetup并将/boot分区安装到单独的 USB 密钥。一切都按预期进行,因为加密标头未存储在 LUKS 中,所以我需要在 initramfs 屏幕上手动输入它,但在这一步中,我只是收到一个错误,表明 initramfs 中没有 cryptsetup ("/bin/ sh: cryptsetup: not found") 同时尝试解析标头。

综上所述:

  • dev/sda使用dm-crypt/root/home卷)加密:
cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 create crypt /dev/sda
Run Code Online (Sandbox Code Playgroud)
  • dev/sdb 安装了 grub 的引导棒

我可以从引导棒成功引导。我看到 Ubuntu 启动画面大约 20 秒,这是我想要实现的合理否认,然后它下降到 initramfs 抱怨无法找到/dev/mapper/root- 这也是我想要实现的目标。

问题是,当我想解析允许我输入密码并继续引导的 cryptsetup 行时,initramfs 会抱怨“cryptsetup:未找到”。

我想这个抱怨是真的。我的问题是:如何将 cryptsetup 安装到 initramfs 中,以便它允许更准确地引导密码提示?

另外,我知道我在 中添加了适当的条目而省略了一些内容/etc/fstab/etc/crypttab并且在启动期间找不到设备。

这些是我找到并用于设置所有当前配置的指南,也许这会清除我在问题中未涵盖的内容:

第一个有点过时,第二个是用于 Arch Linux,但我已经将其中两个用于最新的 Lubuntu 安装,几乎没有调整。

cku*_*jau 3

根据initramfs-tools(8),可以通过将以下内容添加到挂钩脚本来将程序添加到 initrd 映像:

copy_exec /sbin/cryptsetup /sbin

/usr/share/initramfs-tools/hooks示例挂钩脚本可以在我的 Ubuntu 系统中找到,/usr/share/initramfs-tools/hooks/cryptroot确实添加/sbin/cryptsetup到了映像中initrd

例子:

$ gzip -dc /boot/initrd.img-`uname -r` | cpio -tv 2>/dev/null | cpio -tv 2>/dev/null | grep 密码设置
=> 尚未包含 cryptsetup。

$ cat /etc/initramfs-tools/hooks/fde
#!/bin/sh

。/usr/share/initramfs-tools/hook-functions
copy_exec /sbin/cryptsetup /sbin

$ sudo chmod 0755 /etc/initramfs-tools/hooks/fde
$ sudo update-initramfs -u

$ gzip -dc /boot/initrd.img-`uname -r` | cpio -tv 2>/dev/null | cpio -tv 2>/dev/null | grep 密码设置
-rwxr-xr-x 1 root root 59248 八月 21 04:04 sbin/cryptsetup
-rw-r--r-- 1 root root 158848 八月 21 04:04 lib/x86_64-linux-gnu/libcryptsetup.so.4