为什么我在笔记本电脑中更换硬盘时必须修复启动?

为什么我在笔记本电脑中更换硬盘时必须修复启动?

我为我的联想 Thinkpad W530 买了一块新 SSD(我不确定硬件是否相关)。我在新 SSD 上以仅 EFI 模式手动分区(和分区,引导加载程序安装到 /efi)安装/efi了15.04 //home

到目前为止一切顺利。然后我尝试插入旧驱动器,因为我想将一些文件复制到外部驱动器上,然后再复制到新的 SSD 驱动器上。令我沮丧的是,它拒绝启动。我不得不安装修复启动程序来解决问题。然后我插入新的 SSD,它再次拒绝启动。再次,修复启动程序解决了这个问题。发生了什么?笔记本电脑主板上的某些电路中是否写入了某些内容?

答案1

差不多。EFI 模式启动涉及两件事:

  • 写入引导加载程序文件EFI 系统分区 (ESP)在硬盘上。
  • 指向主板上 NVRAM 中存储的基于 ESP 的文件的指针。

目的是您可以安装任意数量的引导加载程序,并提供计算机尝试它们的顺序。用户还应该能够使用其计算机的内置引导管理器覆盖该顺序。原则上,这应该会大大简化多重引导配置。

不幸的是,许多计算机在启动时会删除指向不可用设备的 NVRAM 条目。因此,当您更换磁盘时,您可能会失去从这些磁盘启动的能力。恕我直言,这是 EFI 的一个设计缺陷。

幸运的是,有一个相对简单的解决方法,但需要一些远见才能实施:除了存储的引导加载程序位置外,还有一个特殊位置:EFI\BOOT\boot{arch}.efi,其中{arch}是体系结构代码——通常x64用于 x86-64 (AMD64) 系统。如果没有其他引导条目起作用,则尝试此位置。它通常用于可移动媒体,但大多数 EFI 也会将其用作硬盘的后备。因此,如果您将 GRUB 或其他有效的引导加载程序复制到EFI\BOOT\bootx64.efiESP(通常/boot/efi/EFI/BOOT/bootx64.efi在 Ubuntu 中),即使删除了 EFI 引导条目,磁盘仍将保持可引导。请注意,您可能还需要复制引导加载程序配置和支持文件。

顺便说一下,Fedora 有一个名为 的引导加载程序fallback.efi,旨在恢复已删除的 NVRAM 条目。我没有深入研究过它,但将它放在以下EFI\BOOT\bootx64.efi位置应该也修复了这个问题。不过,我最近听说,一些(损坏的)EFI 会导致此文件在每次启动时运行,结果就是启动条目数量不断增加。这个错误现在可能已经修复了,但我最近没有检查过它。

相关内容