我有一台运行 Linux Mint 的笔记本电脑,决定尝试一下 Ubuntu 17.10。我想绝对安全,所以移除了我的硬盘(实际上是 SSD,但应该没关系),并用备用硬盘(我不再使用的旧硬盘)替换它。我在备用驱动器上安装了 Ubuntu 17.10,它运行良好,但我想稍后迁移到它,因为这是一个较长的过程。
因此,目前我想回到我的旧 Linux Mint,这应该很容易,因为原始磁盘完好无损。然而,在换回磁盘后,我非常惊讶地发现它无法启动。BIOS 为我提供了一个启动设备选择器菜单,其中包含四个条目:
- [我的驱动器型号]
- Debian
- Ubuntu
- Linux Mint
这些都不起作用(没有错误消息,只是返回到相同的列表)。从 USB 磁盘启动实时 CD 映像,我可以确认我的原始磁盘正常工作。我无法理解在安装过程中我的系统磁盘从笔记本电脑中物理移除时,安装 Ubuntu 怎么会导致我的原始系统无法启动。我也没有修改任何 BIOS 设置。
我唯一的猜测是它与 EFI/UEFI 有关,我一直认为这是黑魔法,但不太理解。我相信 BIOS 启动设备选择器中的操作系统名称来自 UEFI,而它列出 Ubuntu 的事实表明安装 Ubuntu 可能对某些 BIOS 状态产生了一些影响……?
有人能向我解释一下这个谜团吗?我该如何解决它?谢谢!
答案1
经过大量调查,我终于明白了。本文描述了 UEFI 使用 NVRAM 来存储某些状态,正如我所怀疑的那样。我还发现我可以使用 efibootmgr 命令与此状态进行交互。
使用命令efibootmgr -v
我可以看到名为 ubuntu 的条目指向 Ubuntu 17.10 EFI 磁盘,名为 linuxmint 的条目指向不存在的磁盘。从本文我了解到“Linux Mint 使用名为 ubuntu 的 EFI 启动目录,这显然与 Ubuntu 本身使用的目录相冲突”。因此,名为 linuxmint 的条目是一个转移注意力的幌子,Ubuntu 和 Linux Mint 都使用名为 ubuntu 的条目,并且由于此列表存储在计算机本身中,因此 Ubuntu 覆盖了 Linux Mint 的条目,即使在安装过程中删除了 Linux Mint 启动驱动器。
解决方案是使用引用正确 EFI 分区的 efibootmgr 向列表中添加一个新条目。
UEFI 的这种行为简直是疯了。HDD 应该能够完全封装可启动的操作系统。但 UEFI 不再如此,您还必须在计算机的 UEFI NVRAM 中做一些调整。您无法再在计算机之间自由交换启动盘。