Linux 平板电脑:有没有办法在启动过程中使用屏幕键盘输入密码来解锁 LUKS 加密设备?

Linux 平板电脑:有没有办法在启动过程中使用屏幕键盘输入密码来解锁 LUKS 加密设备?

我刚刚在基于 x86 的平板电脑上安装了 Linux(Ubuntu,但这并不重要)。我还加密了启动期间安装的分区。当然,通常需要在启动时输入密码来解锁分区。

有没有办法cryptsetup luksOpen用屏幕键盘解锁 ( ) 分区(仅限触摸屏,没有物理键盘!)第一个用户登录?

屏幕键盘 ( Onboard) 在登录期间(在gdm或其他显示管理器中)及以后工作得非常好。

我确实意识到X尚未在正常时间/etc/init.d/boot.crypto(或较新的时间systemd)开始交互式地请求密码/etc/crypttab,因此问题可能意味着,是否有办法推迟解锁直到 X 启动(但在用户登录之前)。

PS:通常显示密码提示的过程是plymouth要求输入密码https://wiki.ubuntu.com/Plymouth#A.22plymouth_ask-for-password.22。它确实使用图形显示模式,但我认为不是X?!集成lightdm将是另一种选择(屏幕键盘随时可用)。

答案1

经过很长一段时间的寻找和尝试,我终于找到了一个我可以接受的解决方案。情况相当复杂,所以我尝试尽可能结构化地描述它。

配置

硬件配置:DH87RL主板 i7-4771 CPU GeForce GTX 970

软件配置:Ubuntu 15.10

驱动程序选择

您可以使用默认安装的 open nouveau 驱动程序,也可以使用专有的 nvidia 驱动程序。接下来,强烈涉及“plymouth”包,它使您能够配置图形启动。将 nvidia 驱动程序与 plymouth 一起使用对我来说不起作用,但对于所有其他 3 种可能的组合,解决方案如下所述。

这里有两个密切相关的问题,一是能够在启动时输入加密硬盘的密码,二是能够在 X 启动并运行时切换到控制台。下面描述了这两个问题。

能够在启动时输入加密硬盘的密码

Nouveau 驱动程序与普利茅斯:Nouveau 驱动程序工作“正常” - 这意味着我必须在启动时按键盘上的向下箭头,以便出现文本模式。在那里,会询问密码。 (有些星星可能已经显示 - 在输入密码之前删除它们......)

这个解决方案没问题,但我需要 nvidia 驱动程序才能工作,因为例如,使用 nouveau,我在 virtualbox 内没有适当的 3D 加速。

没有 plymouth 的 Nvidia 驱动程序:我目前使用的 nvidia 驱动程序是 nvidia-352。我是通过apt-get安装的。因此,我没有直接从 nvidia.com 站点下载并安装驱动程序,而是使用 nvidia 驱动程序的发行版(在我的例子中:Ubuntu 15.10)包。

为了使 nvidia 驱动程序正常工作,我必须禁用 plymouth。例如,可以通过将“noplymouth”选项传递给内核参数来完成此操作。

--- /etc/default/grub (示例)---

[...]
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noplymouth"
[...]

--- 更新 grub ---

然后,从命令行执行 update-grub:

# update-grub

通过这些更改,我可以在图形启动期间看到屏幕短暂闪烁(显然密码提示出现了几分之一秒,然后再次消失)。但现在我知道密码提示出现了,我可以开始输入密码了。提示将在输入的第一个字符时重新出现,并且已经识别了输入的字符。如果不安全,无论密码提示是否已准备好,我仍然可以按如上所述的向下箭头。

是的,这不是一个完美的解决方案 - 但经过很长一段时间的搜索和尝试后:至少它是有效的 - 而且你可以习惯它。

出于好奇,我还尝试了禁用 plymouth 的 nouveau 驱动程序:在这种情况下,它工作得更流畅,因为密码提示确实出现并保留在屏幕上。

所以看起来免费的 nouveau 驱动程序比 nvidia 驱动程序做得更好。我想 NVIDIA 在这里还需要做一些功课!

切换到控制台

使用 nouveau 驱动程序,可以轻松切换到控制台 (CTRL-ALT-F1)

使用 nvidia-352 驱动程序,无法切换到控制台!按 CTRL-ALT-F1 没有任何作用。我发现的一个(丑陋的)解决方法是从 X 会话中重新启动窗口管理器。使用 lightdm 作为窗口管理器为我工作,未对其他人进行测试。请在执行此操作之前保存所有打开的文档,因为 X 会话的所有应用程序都将被终止: sudo service lightdm restart

同样,nouveau 驱动程序比 nvidia 官方驱动程序做得更好。我不得不说,我对 NVIDIA 感到非常失望!

相关内容