所以我有一个功能齐全的三重启动系统(Windows 10、Ubuntu 14.04、Kali Linux 2.0)。今晚我回家启动系统,但没有得到 GRUB。我尝试从 Boot-Repair-Disk 进行故障排除,但在运行启动修复时,我收到一条消息“请关闭所有包管理器(软件中心、更新管理器、突触,...)。然后重试。” .....我没有打开任何此类程序。
我的启动信息摘要是这里。由于没有安装启动管理器,GRUB 似乎以某种方式被删除了。
所以我的主要问题显然是如何解决这个问题,因为出于某种原因,Boot-Repair-Disk 无法正常工作
我的另一个主要问题是这是什么原因造成的?我没有对 Windows 进行任何重大更新。我能想到的唯一可能导致这种情况的事情是前几天刷新了我的 BIOS?只是想知道为了将来应该避免什么!
答案1
你做安装了引导加载程序。我猜你正在读以下内容:
=> No boot loader is installed in the MBR of /dev/sda.
然而,这指的是BIOS 模式引导加载程序。但是,您的系统显然正在引导EFI 模式,并且你的EFI 系统分区(特别是;/dev/sda2
就你的情况而言)。
EFI 引导加载程序已在固件中注册,Linuxefibootmgr
工具可以显示有关它们的信息。您的 Boot Repair 输出在第 1081-1108 行包含以下信息:
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO
Boot0004* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0007* Hard Drive BIOS(2,0,00)..GO..NO........o.S.a.m.s.u.n.g. .S.S.D. .8.5.0. .E.V.O. .2.5.0.G.B....................A...........................>..Gd-.;.A..MQ..L.2.S.N.1.X.N.G.A.0.C.8.1.2.3. .H. . . . ........BO..NO........o.W.D.C. .W.D.1.0.E.Z.E.X.-.0.0.B.N.5.A.0....................A...........................>..Gd-.;.A..MQ..L. . . . .W. .-.D.C.W.3.C.0.F.L.N.T.V.D.Y........BO
Boot0008* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0009* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000A* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000B* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000C* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000D* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000E* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot000F* Unknown Device BIOS(b,0,00)..GO..NO........i.P.N.Y. .U.S.B. .2...0. .F.D. .1.1.0.0....................A.......................<..Gd-.;.A..MQ..L.P.N.Y. .U.S.B. .2...0. .F.D. .1.1.0.0........BO
Boot0011* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0012* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0013* UEFI: PNY USB 2.0 FD 1100 ACPI(a0341d0,0)PCI(12,2)USB(1,0)HD(1,70,1d19f90,c3072e18)..BO
Boot0014* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0015* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0016* UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0017 UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0018 UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot0019 UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot001A UEFI: Samsung SSD 850 EVO 250GB ACPI(a0341d0,0)PCI(11,0)03120a000000ffff0000HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)..BO
Boot001B* Windows Boot Manager HD(2,e1800,32000,a58a1cd6-0de6-44ef-ba6e-a358cdc2952b)File(EFIMICROSOFTBOOTBOOTMGFW.EFI)..BO
关于这个输出,我注意到了两件事:
- 没有任何
ubuntu
条目,但应该有。 - 有多个重复的条目
Samsung SSD
。
您应该能够使用以下命令修复第一个问题,该命令是从用于运行启动修复的紧急磁盘中输入的:
sudo efibootmgr -c -d /dev/sda -p 2 -l //EFI//ubuntu//shimx64.efi -L "ubuntu"
(如果系统抱怨没有efibootmgr
命令,请键入sudo apt-get install efibootmgr
以安装它。)
该命令应该创建一个ubuntu
条目并将其设为默认条目。也就是说,该ubuntu
条目可能不存在,因为导致冗余Samsung SSD
条目出现的原因已经弄乱了 NVRAM 数据并将该ubuntu
条目推出。此类问题还可能阻止新条目“生效”。如果是这样,至少有几个可能的解决方法:
- 您可以使用
efibootmgr
删除多余的条目。输入sudo efibootmgr -b 0004 -B
将删除该Boot0004
条目。重复该命令,但依次更改0004
每个Samsung SSD
条目,以删除所有条目(或者可能只删除其中一个条目)。不要删除除--之外的各种条目Samsung SSD
似乎都是有效的,并且我发现如果删除某些必要的条目,EFI 就会失效。 - 您可以使用固件的设置工具将所有固件选项重置为默认值。这可能会消除所有 NVRAM 条目,然后您需要使用
efibootmgr
重新创建ubuntu
条目,如刚才所述。
如果尝试此操作后您仍然遇到问题,我建议您在尝试其他任何操作之前阅读以下页面以获取更多背景信息:
- Adam Williamson 的博客文章介绍了 EFI 的工作原理—— 本页描述了 EFI 模式启动背后的理论。
- 我的关于在 EFI 系统上安装 Linux 的页面—— 与 Adam Williamson 的博客相比,此页面对 EFI 模式启动进行了更实用的介绍。
幸运的是,这些页面上的信息将帮助您了解 EFI 模式启动,这将帮助您调试 EFI 启动问题,如果您自己无法弄清楚,请提出正确的问题。
答案2
当我尝试使用 Boot Repair 安装 GRUB 以安装具有单独 /var 分区的安装时,遇到了此错误消息。取消选择“重新安装前清除 GRUB”选项可消除错误,并且 Boot Repair 成功安装了 GRUB。
(就我而言,之前没有安装 GRUB。Linux Mint 18.1 的 Ubiquity 安装程序失败 - 并且崩溃 - 无法将其安装到 Promise fakeRAID 控制器上的磁盘上,这意味着我必须使用 Ubiquity 的 --no-bootloader 选项来完成安装 - 进入 LVM 分区。)