14.10 升级导致系统无法启动

14.10 升级导致系统无法启动

我在联想 ThinkPad T440p 上运行 14.04 已经有一段时间了。今天我进行了 14.10 升级。升级过程没有任何问题。(我之前进行过多次升级,可以追溯到一些非常老的 Ubuntu 版本,它们通常都能正常工作。)

升级结束时,系统尝试重新启动,但屏幕上闪过一条有关启动错误的信息。之后系统根本无法启动。

主磁盘是具有 3 个分区的 SSD:EFI 分区、分区/boot和包含 LUKS 加密 LVM 卷的分区。从实时 CD 中,我可以挂载它们,并且至少可以看到它们看起来没问题。

是否有一些可以让我让该驱动器启动的流程?有成千上万的建议使用“启动修复”工具,但它没有任何效果(对于那些关心的人来说,Boot-Repair URL)。我已将笔记本电脑的 BIOS 设置为从 UEFI 启动;我没有为升级而更改它,但在出现问题后我确实进行了检查。

我应该说一下,当我说机器“无法启动”时,我的意思是它的行为就像驱动器无法启动一样。BIOS 允许我将其选为启动设备,但尝试从它启动却毫无结果。没有诊断程序,也没有迹象表明它甚至试图启动。

答案1

当我找到此解决方案时,我会链接到我找到该解决方案的博客/wiki 页面,因为我真的不完全明白发生了什么。

据我了解,UEFI 启动机制是应该解释 EFI 文件系统的布局,并为启动计算机的人提供使用哪个引导加载程序的选择。升级后,在我的计算机上的 EFI 文件系统中,我有一个“ubuntu”目录,其中包含一个“grubx64.efi”文件。然而,Thinkpad 似乎没有注意到这一点,这就是它将 SSD 视为无法启动的原因。

我发现的这篇神秘博客文章建议,解决某些愚蠢的 UEFI BIOS 实现的不良行为的一种方法是在 EFI 文件系统中创建一个“boot”子目录,并将 GRUB 加载程序复制到那里名为“bootx64.efi”的文件中。即:

mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
mkdir /mnt/efi/EFI/boot
cp /mnt/efi/EFI/ubuntu/grubx64.efi /mnt/efi/EFI/boot/bootx64.efi

我从 Live CD(好吧,Live DVD)执行了此操作并重新启动。令我惊讶的是,仅此而已。显然,“boot”EFI 子目录是默认的,因此即使是愚蠢的 BIOS 实现也会找到它。

我不知道在更新 14.10 环境时会发生什么。我猜每次我更新时apt-get upgrade我都会检查 grub 启动文件是否已更新,然后将其复制到“boot”伪目录中。

这可能是 BIOS 的一个怪异现象。

相关内容