Windows 8删除Grub作为默认启动管理器


37

我已经预装了Windows 8的Sony VAIO S系列,并且在新分区上安装了Ubuntu 12.10。当PC启动Grub时,我可以在Windows 8(起初没有用,必须更改Grub设置)和Ubuntu 12.10之间进行选择。当我选择Ubuntu 12.10时,一切正常,但是当我使用Windows 8并重新启动Grub时,不再显示(Windows 8立即启动)。

我使用引导了Ubuntu 12.10 LiveUSB,efibootmgr并发现Windows 8(每次引导时)将EFI默认引导程序从Grub更改为Windows引导管理器。

如何在Windows 8中更改此设置?我阅读了有关的内容bcdedit,但是它不起作用或不知道如何使用...


我认为您正在自行解决此问题。只要继续挖掘[;

3
是的,我只需要一件小事,然后我将编写一个教程来做到这一点。微软很烂,为什么他们必须更改默认启动管理器?我认为这是为了防止人们使用除Microsoft产品以外的任何其他产品。
Kouros

纳阿,我认为他们只是不在乎。无论如何,希望很快能看到您的教程。

我只是问微软的客户服务这件事,他们就把我引到了他们的论坛。在论坛上,一个小伙子告诉我,窗户摆在首位。期。如果我不喜欢它,只需在Windows中创建一个批处理文件,该文件将在每个启动端运行bcdedt -s Windows uefi配置,以便下次启动grub。真好
netom

GPT文件系统包含启动扇区的副本。看来Windows只是在检查MBR校验和并通过用原始的保护性MBR数据覆盖它来“修复”它。最佳安全实践。en.wikipedia.org/wiki/GUID_Partition_Table

Answers:


33

我不能做出任何保证,但是请使用具有管理员权限的Windows命令提示符窗口尝试以下操作:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

注意,{bootmgr}应键入准确;那不是一个变量。如果那行不通,您可以在Linux中尝试:

  1. 备份/boot/efi(您的EFI系统分区或ESP)的全部内容。
  2. 输入sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft
  3. 输入cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
  4. 创建一个新/etc/grub.d/40_custom文件引用EFI/Microsoft/bootmgfw.efi。在/boot/grub/grub.cfg引用的现有条目之后对其进行建模EFI/Microsoft/Boot/bootmgfw.efi; 只需Boot从启动路径中删除,然后为条目指定一个新名称即可。
  5. 键入sudo update-grub以安装新的GRUB条目。

重新启动时,GRUB应该启动。问题在于,如果/当Windows决定重新安装其引导程序时,系统将再次开始直接引导至Windows。

对于步骤4,您可以:

  1. 复制位于一组和标记/注释之间的40_custom条目。这是路径包含的条目。menuentry 'Windows ...'### BEGIN <path> ###### END <path> ###Boot
  2. /etc/grub.d/40_custom通过添加复制的文件在文件中创建一个新条目menuentry
  3. 更改新条目的名称(原始名称应为Windows Boot Manager或类似名称)。
  4. 将路径从更改EFI/Microsoft/Boot/bootmgfw.efiEFI/Microsoft/bootmgfw.efi

编辑:

自编写此答案以来,我已经知道了名为EasyUEFI的第三方Windows工具它比bcdedit从Windows调整EFI引导顺序要容易得多。我不知道EasyUEFI是否会阻止Windows进行更改,如果Windows习惯于在每次引导时将其自身设置为默认值。因此,bcdedit可能仍然需要,但EasyUEFI绝对也值得尝试。


5
您是否愿意帮我一个忙,并为我们提供第4步的特定终端提示?除了执行该步骤外,我还执行了其他所有操作,因为我不确定究竟要键入什么命令。Grub现在可以工作,但是它不能让我启动Windows。ek!

请详细说明步骤4
ji-ruh

\EFI\ubuntu\shimx64.efi在Ubuntu 18.0.4 LTS上找到
CSGO

2

如何在Windows 8中更改此设置?我读了一些有关bcdedit的信息,但是它不起作用,或者我不知道如何使用它...

在这里发生同样的问题,我终于发现最新的W8.1更新做到了这一点,并且我知道这是因为我今天才更新,而且我33天没来HP亭告诉我。

无论如何,这是有效的方法:

我按照此Utube视频停止了“自动[启动]修复”:http : //www.youtube.com/watch?v= VRQYmtysFkg

然后使用Rod提供的上述解决方案更改bootmgr:bcdedit / set {bootmgr} path \ EFI \ ubuntu \ grubx64.efi

答对了!

顺便说一句:从LiveUsb进行引导修复确实失败了,但是在W8修复了其引导条目时导致了短暂的闪烁。


1
您决定提供帮助真是太好了!但是您的答案没有为您发布的(视频)链接提供任何上下文我们在Ask Ubuntu上需要它。我们希望此处的答案提供上下文,因为(视频)链接迟早会失效。
VenkiPhy6 2014年

0
  1. 运行启动修复Recommended Repair从liveCD的,然后重新启动电脑。
  2. 如果仍然不好,请运行引导修复->高级选项->取消Backup and rename EFI files勾选“ Restore EFI backups”-> 勾选“ ”->应用

2
Nop问题来自Windows 8
Kouros

0

我只有一个答案:一种可行的解决方案几乎可以,直到我找到如何永久修复它为止。

遇到相同的问题:Windows 8附带的thinkpad edge;以双启动方式安装了ubuntu,并在Windows 8.1出来之前主要忘记了Windows,我想在彻底删除Windows之前先尝试一下。因此,在安装8.1之后,当我按F12键时,grub在启动BUT上不再显示,然后出现了另一个菜单,该菜单允许我启动ubuntu。那就是我现在启动计算机的方式:但是每隔第二次我就忘记按F12键,但它仍然会启动Windows(我几乎从未想要过)。

因此,按F12可以帮助一段时间(不确定是否适合您的情况,但值得尝试)。我知道有关于如何还原grub的说明,但是在完全确定之前我不会做任何事情。


0

Windows 8.1以某种方式完全阻止Ubuntu重复了这个问题。我认为不是,但是我只能在这里发表评论。我遇到了与Windows 8.1完全阻止Ubuntu相同的症状。

在我的情况下,解决方案是在启动过程中按F2键并更改启动顺序,以使ubuntu在列表中居首位。由于某种原因,我将双启动(Win / ubuntu)笔记本电脑从Win 8升级到Win 8.1后,“ windows”出现在启动列表的顶部,先于ubuntu,DVD,USB等,并且笔记本电脑直接启动进入Windows 8.1,而没有给出我任何选择。

在启动过程中按F2键并使ubuntu成为列表的顶部,这解决了我的问题,并在从Microsoft商店升级到Windows 8.1之后使ubuntu可以再次访问(以及Windows 8.1)。


0

在Acer E17上使用Windows 10和Ubuntu 14.04时,我遇到了类似的问题(Windows启动管理器接管了,启动时无法访问Grub)。我遵循了罗德·史密斯(Rod Smith)的指示,但没有运气。(非常好的指示,顺便说一句)

我在BIOS中的引导顺序下找到了一个设置,该设置首先列出了Windows Boot Manager,然后列出了HDD。我交换了它们,保存并退出/重新引导,然后Grub立即出现。

我在其他地方读到过一些BIOS具有快速启动选项,您可能也需要禁用它,但是我的却没有。


0

在某些计算机上,BIOS设置控制UEFI分区中* .efi文件的启动优先级。我发现我的HP Pavilion 15-f039wm笔记本电脑确实可以使用,尽管并没有立即发现它具有该功能。在BIOS中进行设置可以避免直接和使用bcdedit混淆.efi文件。

对于那台机器,我按F10键进入BIOS设置程序,然后将光标定位到并选择“ Boot Options”。UEFI引导优先级的选项可以重新安排,其中之一是“ OS Boot Manager”。但是,该选项具有额外的功能,如果我突出显示它并按Enter,则会弹出一个窗口,用于重新排列“ OS Boot Manager”中“ ubuntu”和“ Windows Boot Manager”的优先级。我将F5 / F6放在“ ubuntu”的顶部,用F10保存弹出窗口的内容,然后再次按F10保存并退出BIOS设置程序。

现在无需逐引导启动,我将获得Grub菜单,默认情况下会引导Ubuntu。我仍然可以通过Grub菜单启动到Windows,或者通过干预F9来获得UEFI Boot Manager菜单来获得安全启动。

该BIOS功能有助于解释为什么UEFI代码似乎覆盖了我在Ubuntu中使用efibootmgr对BootOrder所做的更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.