如何使用 UEFI、Nvidia 显卡和 dm_crypt 加密 LVM 启动 Ubuntu 12.04.2 LTS

如何使用 UEFI、Nvidia 显卡和 dm_crypt 加密 LVM 启动 Ubuntu 12.04.2 LTS

我刚刚获得了 3 个新系统,配备 Nvidia GTX 660 显卡、Z77 芯片组和 AMI UEFI BIOS。

我已经从备用安装程序安装了 Ubuntu 12.04.2 LTS,以便安装到带有启动时密码的加密 LVM 上。

运行正常 - 首次启动时引导加载程序中出现了一些图形损坏,但我能够输入磁盘密码并启动 X.Org。这是使用默认的 nouveau 驱动程序。此驱动程序在此硬件上不稳定 - 在桌面上快速移动窗口导致 X.Org 崩溃。此行为在所有三个系统中都是一致的,因此不太可能是硬件问题。

因此,我使用附加驱动程序设置小程序安装了 nvidia-current,然后重新启动。此后,启动机器变得不可靠:有时,BIOS 完成后会立即显示以下消息:

error: no video mode activated.

显示 GRUB2 启动菜单(实际上,此文本显示在 American Megatrends 徽标上方,该徽标并未从屏幕上清除);其他时候,它足以显示菜单。但从菜单中选择正常启动时,只会显示一个空白屏幕。

我插入了以下内容(从这里)直接进入 GRUB2 菜单项编辑器

insmod efi_gop
insmod efi_uga
insmod font
loadfont ${prefix}/unicode.pf2
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm

这给了我一些启动文本和加密密码提示,但 X.Org 随后抱怨图形太低端,无法继续。所以这是一条死路。

经过一番思考,我终于意识到我可以将加密密码盲目地输入到空白屏幕上,然后启动就会继续。但这意味着我没有文本模式终端。在 X.Org 中,当我输入 Ctrl+Alt+F1 时,我只会看到一个空白屏幕。

我知道(根据过去的经验以及从 dmesg 查看内核日志)Nvidia 专有驱动程序不喜欢图形模式启动。通常解决方法是在内核命令行上使用 nomodeset,但这在这里不起作用。Nomodeset 仍然会导致黑屏。

在 UEFI 和 Nvidia 硬件上使用 12.04.2 设置文本模式启动的正确步骤是什么,以便可以看到启动模式密码提示?

附言:这一页建议我应该使用不同的引导加载程序,并且 GRUB2 对于 UEFI 系统来说是一个糟糕的选择,但如果可以的话,我真的不想费心更换引导加载程序。

PS:/sys/class/graphics/fb0 不存在;我将其解释为根本没有加载帧缓冲驱动程序。从其他研究来看,我相信帧缓冲驱动程序对于 EFI 启动文本支持是必要的,因为没有回退到 BIOS 文本输出(因此 vga_text 不起作用)。我开始怀疑我应该寻找一个与 nvidia-current 二进制驱动程序兼容的帧缓冲驱动程序。

相关内容