我刚刚在基于 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 感到非常失望!