我为我的 Lenovo Thinkpad W530 买了一个新的 SSD(我不确定 hadware 是否相关)。我以 EFI-only 模式在新的 SSD 上安装了 15.04,并手动分区(/efi
和/
分区/home
,引导加载程序安装到 /efi)。
到目前为止,一切都很好。然后我尝试插入我的旧驱动器,因为我想在外部驱动器上复制一些文件,然后再复制一个新的 ssd 驱动器。令我沮丧的是,它拒绝启动。我必须安装 repair-boot 才能解决问题。然后我插入了我的新 SSD,它再次拒绝启动。再次,修复启动解决了它。到底是怎么回事?笔记本电脑主板上的某些电路是否写入了某些内容?
差不多。EFI 模式引导涉及两件事:
目的是您可以安装任意数量的引导加载程序,并提供计算机尝试它们的顺序。用户还应该能够使用他们计算机的内置启动管理器来覆盖该顺序。原则上,这应该会大大简化多引导配置。
遗憾的是,许多计算机会删除指向计算机启动时不可用的设备的 NVRAM 条目。因此,当您交换磁盘时,您可能会失去从它们引导的能力。恕我直言,这是 EFI 的设计缺陷。
幸运的是,有一个相对简单的解决方法,但它需要一些先见之明才能实施:除了存储的引导加载程序位置之外,还存在一个特殊的位置:
EFI\BOOT\boot{arch}.efi
,其中{arch}
是架构代码——通常x64
用于 x86-64 (AMD64) 系统。如果没有其他引导项起作用,则尝试此位置。它通常用于可移动媒体,但大多数 EFI 也会将其用作硬盘的后备。因此,如果您将 GRUB 或其他一些有效的引导加载程序复制到EFI\BOOT\bootx64.efi
ESP 上(通常/boot/efi/EFI/BOOT/bootx64.efi
在 Ubuntu 中),即使删除了 EFI 引导条目,磁盘仍将保持可引导。请注意,您可能还需要复制引导加载程序配置和支持文件。FWIW,Fedora 有一个名为的引导加载程序
fallback.efi
,旨在恢复已删除的 NVRAM 条目。我没有深入研究它,但将它放在该EFI\BOOT\bootx64.efi
位置应该也能解决这个问题。不过,我最后听到的是,一些(损坏的)EFI 导致该文件在每次启动时运行,结果是启动项的数量不断增加。这个错误现在可能已经修复了,但我最近没有检查过它。