![Grub2/LUKS 如何避免输入密码两次?](https://linux22.com/image/158219/Grub2%2FLUKS%20%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%E4%B8%A4%E6%AC%A1%EF%BC%9F.png)
我使用的是最新的 OpenSUSE Tumbleweed 并且本指南没有为我工作。
我按照指南中的方式进行了所有操作,只是我没有生成新的随机密钥并将其添加到硬盘,而是使用了我一直使用的密码并将其写入/.root.key
.
但我仍然被要求输入密码,但似乎 cryptsetup 或其他足够聪明的东西可以自动为我所有其他也使用与 SSD 相同密码的 HDD 尝试它。所以我必须为 Grub 输入它,然后在启动过程中再次要求我解锁 SSD。
如何查看是否/.root.key
已添加到 initramfs 中?
答案1
我按照指南中的操作进行了所有操作,只是没有生成新的随机密钥并将其添加到硬盘,而是使用了我一直使用的密码并将其写入文件中。
文件中的密码工作正常,但它必须 不是 有换行符在最后。
验证它是否适用于--key-file
选项:
cryptsetup open --verbose --key-file yourfile --test-passphrase /dev/yourdevice
如何查看是否
/.root.key
已添加到 initramfs 中?
lsinitrd
使用、lsinitramfs
或lsinitcpio
自行解压其中之一。
mkdir /tmp/initramfs
cd /tmp/initramfs
gunzip < /boot/initrd.gz | cpio -div -H newc --no-absolute-filenames
如果例如不是 gzip 压缩而是 xz 或其他压缩,则此命令可能会有所不同。按照您认为合适的方式进行调整。
或者,如果 initrd 将您带到紧急 shell,您当然也可以使用它来探索 initrd 状态。
ls -al
hexdump -C .root.key # or similar
似乎 cryptsetup 或其他足够聪明的东西可以自动为我所有其他 HDD 尝试它,这些 HDD 也使用与 SSD 相同的密码
这是一个 systemd 功能,systemd-询问密码--接受缓存(接受缓存的密码,即之前输入的密码)。也许它也已进入其他类型的 initramfs 中。这是一个很好的解决方案,输入两次密码还是可以接受的,连续输入10次......
并非所有发行版都使用此功能,我不知道它是否与指南中概述的密钥文件方法配合使用。您必须自己调试。