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 安装,几乎没有调整。
根据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