如何使我的HP笔记本电脑从新的efi文件启动到grub?


28

我有一台HP Pavilion Sleekbook 14笔记本电脑,该笔记本电脑已在原始Windows 8上安装了Ubuntu 12.10双重启动功能。我使用了启动修复程序来启动启动到grub。

我的问题是我无法直接启动所创建的新efi文件。我已经在BIOS屏幕中查看了启动选项,但是并没有给我Ubuntu的选择。我可以启动到Ubuntu的唯一方法是在打开系统电源时按F9,然后手动导航到ubuntu efi文件。这可以工作,但是如果我不密切注意,它将启动进入Windows。

在完成启动修复后,它告诉我从sda2 / EFI / ubuntu / shimx64.efi启动,我已经看到一些建议,应该将该文件替换为Windows bootmgfw.efi,但我担心我会这样做损坏东西,无法启动Windows 8安装。尽管我已经不喜欢win8胜过win7,但我确实不时需要它来完成一些任务...

我的开机维修详细信息在这里:http : //paste.ubuntu.com/1418009/


shimx64.efi为我工作,尽管在我的情况下,Ubuntu Gnome在安装后无法启动,并且必须通过在BIOS中创建新的启动选项来选择文件。
timkofu

这里有许多关于Windows的答案,您是要引导进入Linux还是Windows?
埃文·卡罗尔

由于Windows的担心,许多错误的答案不必要地变得复杂,只需sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi从@Vitor Abella的答案中重命名grub的efi
Evan Carroll

Answers:


29

尝试双重启动Ubuntu 12.04.3 LTS和Windows 8时,我的HP Pavilion g6也遇到了同样的问题。也就是说,即使在“成功”运行Boot-Repair之后,我仍然可以直接将笔记本电脑启动到Windows 8。在HP符号出现之前按F9键,我便能够进入启动菜单(HP的菜单?我不知道...),然后从那里选择“ Ubuntu”条目,这又将我带到GRUB 2,最后到我的Ubuntu安装。

尽管如此,我仍然希望能够直接将计算机引导至Linux,而无需任何用户干预。

最后,罗德·史密斯(Rod Smith)的上述回答,再加上我在另一个论坛上找到的信息,为我解决了问题。我禁用了安全启动,也禁用了传统启动。

这是我所做的:

  • 我在启动时使用F9键的技巧引导到我的Ubuntu安装中,以便能够选择引导加载程序。
  • 进入Ubuntu后,我打开了一个终端。
  • 使用以下命令,我检查了Windows启动加载程序的位置:

    $ sudo efibootmgr -v
    
  • 在我的情况下,原始引导加载程序位于:中/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi请注意,在您的计算机中,它可能位于其他位置。如果是这样,您将需要调整以下命令。

  • 根据Rod在他的回答(关于如何手动修复引导加载程序的建议)中的建议,我通过将文件向上移动一级来对该文件进行了备份:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
    
  • 最后,我在那个地方复制了GRUB2的引导加载程序,“诱使”系统加载了我想要的引导加载程序,而不是Windows的原始引导加载程序。

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    

所以最后我有了GRUB2的双重启动功能。如果Windows在更新后再次覆盖了引导加载程序(就像对我所做的那样),我已经知道使grub恢复原位的步骤。

希望这对某人有帮助。如果我的解决方案有任何问题,请告诉我。


9
谢谢,它有帮助,但是我无法启动Windows。在启动时,它将启动GRUB,在GRUB中,“ Windows引导管理器”选项再次进入GRUB菜单(可以预期,因为它链接到相同的.efi文件)。尽管我对启动修复并不满意,但它看起来像是一个问题。我通过在/etc/grub.d/中转到Ubuntu来解决此问题,方法是复制我在ubuntu粘贴中的Windows Boot条目并编辑.efi文件的url以指向bootmgfw.efi的备份,从而填充文件40_custom。因此,菜单项包含chainloader /EFI/Microsoft/bootmgfw.efi
Vince

1
菜单输入对我不起作用
皮埃尔·皮埃尔(

@Pierre May:也许使用以下菜单项将对您有用:menuentry'Real Windows'{set root =(hd0,gpt2)chainloader /EFI/Microsoft/bootmgfw.efi}(这假定您的efi分区位于第一个确保,当您在grub中时可以键入“ c”,然后键入“ ls”以查看可用的分区
。– tobiasBora

12

我在HP ProBook 4340上遇到了相同的问题,原来的Windows 8已经被新的Kubuntu 15.04覆盖了(我更喜欢没有双重引导)。在其他尝试中,我还尝试了Boot-Repair(安装后从HD 引导并通过boot-repair-disk进行引导),但是该练习很可能是不必要的。

导致问题的原因是BIOS设置中的以下更改(在计算机启动后按F10键 -转到“ 系统配置 -打开启动选项”):

  1. 检查自定义启动

  2. 勾选SecureBoot

  3. 引导模式:选择UEFI HybridUEFI Native(我选择UEFI Native)

  4. UEFI引导顺序:将自定义引导置于顶部

  5. 定义自定义启动选项:选择添加并放置设置:\EFI\ubuntu\grubx64.efi

通过快速启动选项(F9)中的从EFI文件启动选项打开GRUB时,我们找到了正确的路径字符串。首先,选项列表包含:

  • 操作系统启动管理器
  • 从EFI文件启动

添加“自定义启动”选项后,它被添加到列表中:

  • 定制开机
  • 操作系统启动管理器
  • 从EFI文件启动

正是在hp zbook 15上做到了,没有运气
cmbarbu

如果您使用uefi系统并在Windows 10之后安装UBUNTU 16.10,则此答案是正确的
-leoredi

谢谢,我不得不这样做Define Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
m3asmi

6

惠普的UEFI令我心痛已有一段时间了。您的修复程序帮助我再次在GRUB中重新启动了HP笔记本电脑-无需先按F9键。

我有一个问题:修复后,我可以在GRUB中选择Windows 8,但是Windows 8随后拒绝启动,再次显示了GRUB菜单。

我的解决方法:

  1. 将原始的Microsoft efi文件复制到 /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. 编辑/boot/grub/grub.cfg以识别重命名的Microsoft efi文件

笔记本电脑现在可以启动到GRUB,Ubuntu和Windows 8现在可以从GRUB启动。


5

通常,运行Boot Repair将Microsoft的原始引导加载程序文件(bootmgfw.efi)备份为bootmgfw.efi.bkp原始bootmgfw.efi文件,并用GRUB(或垫片)的副本替换该原始文件,并且您发布的Boot Repair输出将显示此内容。但是,我看不到这样的备份文件。因此,我建议您执行以下三种操作之一:

  • 再次运行Boot Repair,但查找与备份和更换Microsoft Boot loader有关的选项。激活这些选项以继续该过程。GRUB可能会或可能不会启动Windows;似乎命中注定要错过-如果您将安全启动保持活动状态,则可能会遇到更多“失败”。
  • 手动完成工作:从Linux备份/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi(我建议将其下移一个级别,/boot/efi/EFI/Microsoft/bootmgfw.efi而不是将其重命名为bootmgfw.efi.bkp,因为后者是非标准的,并且会使Boot Repair和Ubuntu GRUB以外的工具无法找到它)。复制/boot/efi/EFI/ubuntu/grubx64.efi其位置;或者如果您打算保持安全启动正常运行,请复制/boot/efi/EFI/ubuntu/shimx64.efi它的位置并复制grubx64.efi/boot/efi/EFI/Microsoft/Boot使用其原始名称。然后,您需要修改GRUB配置,以使其能够在其新位置或以其新名称启动Windows引导加载程序。(不过,我听说GRUB尚不能以安全启动模式启动Windows启动加载程序,因此,如果要从GRUB启动Windows,则可能需要禁用安全启动。OTOH,我从来没有尝试过,因此我可能会误认为GRUB在这方面的功能。)
  • 禁用安全启动,然后启动到Linux并使用Debian软件包安装我的rEFInd启动管理器。完成后,输入sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot。后面的命令以类似于我刚才描述的手动过程或Boot Repair进行操作的方式移动和重命名文件,但是它将rEFInd设置为默认的引导加载程序,而不是GRUB。如果您想使用安全启动,则可以通过处理文件并安装新版本的shim(Ubuntu的shim足够早,无法与rEFInd一起使用)来做到这一点。以这种方式安装rEFInd使您无需使用GRUB即可启动,并且安装脚本(在安装Debian软件包时由软件包系统执行)和mvrefind.sh脚本的组合可以解决您遇到的问题。

作为记录,您所遇到的问题与HP EFI实施中的已知错误有关。基本上,该固件是经过硬编码的,可以从Microsoft的启动加载程序启动,从而很难或不可能从其他任何方式启动。我强烈建议您向HP投诉。除非人们抱怨,否则他们不会解决此类问题。

在这三种解决方案中,使用Boot Repair可能是最容易上手的方法。但是正如我指出的那样,Boot Repair使用的非标准命名最终会在将来给其他实用程序造成问题。手动调整将需要更多的精力才能开始工作,但从长远来看将更加清洁。有人报告了使GRUB加载Windows引导加载程序的问题,因此,任何一种选择都可能使您感到头痛。rEFInd更有可能在没有问题的情况下引导Linux或Windows,但是从过程中可以看出,与再次运行Boot Repair相比,使其正常工作可能需要更多的精力,尽管可能不像手工操作文件那样麻烦。将rEFInd与Secure Boot结合使用目前需要更多的跳跃。(有关详细信息,请参见rEFInd的文档。

三种解决方案都涉及风险。EFI实施之间的差异太大,这意味着在一台计算机上运行良好的自动或手动过程可能在另一台计算机上失败。为了保护自己,我建议备份您的ESP(通常/boot/efi在Linux下);只需将文件打包在tarball中或将其复制到备份目录即可。如果出现严重错误,则可以使用紧急光盘启动并还原文件。那可能会使计算机再次启动。


非常感谢你!我还没有尝试过您的任何选择,但是这个周末会。
maddentim

您的rEFInd引导管理器看起来很有趣。那么,您是说我可以禁用安全启动并仍然使用Win8?我有一个问题是,当我尝试tar / boot / efi时,tar在ubuntu文件夹中的某些文件上给了我错误。他们有奇怪的名字,像“诗情=“App.lic”。见线809至817 paste.ubuntu.com/1418009这最后的安装实际上是我的第三次尝试。我想他们是垃圾,可以被删除。做自己我会在完成您的步骤之一后回发
maddentim

我见过几份关于人们禁用安全启动并且在启动Windows时没有问题的报道,所以这不是问题。如果您想启用它以获取安全性,这是可以理解的,但是您不必担心Windows无法启动。至于您的tar错误,这听起来像是脚本有一个错误,并使用奇怪的名称创建了文件。我以前没有在输出中注意到这些文件,但是可以想象的是,创建它们的任何错误也可能导致启动问题。如果是这样,使用rEFInd可能会解决该问题,但其他解决方案可能会失败。
Rod Smith

rEFInd未成功安装。我认为LovinBuntu已确定了问题。/ boot / EFI是只读的。这是输出的一部分:mkdir:无法创建目录/boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi':无此类文件或目录安装ext4(ext4_x64.efi)的驱动程序mkdir:无法创建目录`/ boot / efi // EFI / refind':只读文件系统复制的rEFInd二进制文件
maddentim

3

我花了一天时间解决同样的问题,终于解决了。以下是确切的解决方案。解决问题的完整文章在这里,Rod Smith撰写。

有用的信息

为了使用efi引导加载程序引导到GPT分区表。efi文件是由操作系统在安装时创建的,必须将其提供给计算机的UEFI BIOS,以使其能够启动进入其核心操作系统的功能。

为了保存efi文件,我们需要有一个EFI分区。通常是小于200MB的分区,其fat32格式为EFI system。它包括启动进入任何可启动分区(通常是操作系统)所需的.efi文件及其相关性(格式为.dll.efi)。在我的计算机中,该分区具有以下架构所示的结构:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

通常.efi文件可以有任何名称,但是似乎有些计算机正在寻找特定名称。所以我也提到了标准名称。

  1. Boot文件夹:被识别为默认启动选项,并且由于某种原因擦除了NVRAM。默认情况下将使用。efi引导加载程序的名称为“ bootx64.efi”。如果要选择默认的efi引导加载程序,请将您的efi文件及其周围的所有文件复制到引导文件夹,然后将源的efi文件重命名为“ bootx64.efi”。

  2. Microsoft文件夹:它包含Windows的efi启动文件。有几个efi文件,但主要的是“ efibootmgfw.efi”。我确定Windows会使用它来启动。

  3. Ubuntu文件夹:它包含Ubuntu或Mint的efi文件。有几个.efi文件,但主要的是grubx64.efi

该怎么办?

操作系统安装时已经安装了一些引导选项。但是,由于各种原因(例如卸下和重新安装HDD或安装新的操作系统甚至是新的主板电池),它们可能会从BIOS的引导选项中消失。有两种解决方案来恢复引导选项。

  1. (不推荐)如某些答案中所述,我们可以将工作中的引导选项替换为无效的引导选项。但是问题仍然存在。

  2. 手动注册缺少的efi引导加载程序文件。

怎么做?

  1. 从Linux可启动闪存启动(我使用Linux Mint的可启动闪存)。这必须是EFI usb。(可以通过rufus之类的程序创建的GPT usb)

  2. 挂载EFI分区,您的发行版可能会自动执行此操作。如果/boot可用,请跳过此步骤,并显示与上面类似的结构。现代Ubuntu可以为您完成此任务。

    1. 查找您的EFI分区的地址。这可以通过使用parted命令或Disks程序来完成。它通常是可引导磁盘中的第一个或第二个分区。(/dev/sda1/dev/sda2)此分区通常在FAT32和EFI系统分区类型之间为100MB-200MB。

    2. 挂载EFI分区。您可以使用df命令检查分区是否已挂载。

      df  /boot/efi
      

      如果之前未安装分区(在上一条命令中未显示),请使用以下mount命令安装分区:

      mount  /dev/sda1  /boot/efi
      
  3. 现在,如果您浏览/boot/efi,将会看到类似于上面解释的文件结构。控制是否可以找到丢失的操作系统的文件夹。就我而言,计算机的BIOS仅能看到Windows引导选项,但是我也有linux Mint的Grub引导选项。

    • (不建议使用)我的Windows启动选项起作用,因此首先出于测试目的,我备份了Microsoft文件夹,该文件夹在Windows的启动efi文件中包含一堆文件。(bootmgfw.efi)然后将ubuntu文件夹重命名为Microsoft,然后将命名grubx64.efibootmgfw.efi。重新启动后,不是加载到Windows的grub菜单,而是加载到Windows,而这次只有使用grub才能启动到Windows。并且无法直接启动到Windows。

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • 推荐方式)只需在bios的启动选项中写入您希望其相关操作系统可见的efi文件的地址即可。以我为例,计算机BIOS的启动列表中缺少Linux Mint。其efi文件的地址是/efi/ubuntu/grubx64.efi相对于EFI分区的根目录的。然后,我使用efibootmgr命令将其注册到NVRAM中。

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      p 1命令的一部分中,1定义给定磁盘中efi分区的分区号。 nameForBootOption是给启动选项提供的自定义名称

*请注意输入正确的地址。在Linux上挂载分区时。它将分区安装到根目录下的某个文件夹中,该文件夹将实际地址扩展为类似/media/mint/CC1F-9708/EFI/ubuntu我们所需要的/EFI/ubuntu部分。

* Disks程序是出色的图形工具,默认情况下位于Linux Mint的可启动闪存上。它可以用于检查和查找EFI分区,也可以用于挂载EFI分区,而无需使用任何mount或parted命令。您只需要在菜单,首选项,磁盘中搜索它。


走了不推荐的方式。工作完美。
埃文·卡罗尔

1

您受到此错误的影响:https : //bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

解:

  1. 通过Gparted,创建另一个EFI分区(FAT32,200MB,位于磁盘的前100GB内)
  2. 在其上移动“启动”标志
  3. 使Ubuntu使用此新的ESP(例如,通过Boot-Repair->建议的修复)。

好吧,在第一个100GB内创建另一个ESP意味着将win8分区移动了200MB以上...我认为需要小心。可能会中断Windows启动。也许我应该把它吹走。反正我也不喜欢。我只需要它来观看netflix!
maddentim

请更新Boot-Repair(“ boot-sav”和“ boot-repair”软件包),然后运行“推荐维修”,并指出将出现的新URL。
LovinBuntu


1

在Windows 10上安装Cent-OS 7之后,我遇到了类似的问题。这是我遵循的以下过程。

  • 最初的操作系统是Windows 10
  • 使用rufus创建的uefi usb安装cent-os 7

问题:正在加载Windows 10,甚至无法显示cent OS启动菜单。

  1. 我如何解决:
  2. 去了BIOS
  3. 已启用的旧启动(仅是未来预防措施的一个额外步骤)
  4. 转到启动选项
  5. 单击操作系统启动管理器
  6. 将CentOS UEFI移动到窗口上方:按f10保存
  7. 再次单击OD bootmanager并进行验证。
  8. 按f10保存并退出

现在您的系统将在centos UEFI中启动

由于我们启用了传统启动,因此我们可以选择esc键进入BIOS或其他启动选项


1

我找到了一种方法来使我的HP Pavilion g7-2269wm(UEFI)启动rEFInd(也可以bootmgfw.efi使用GRUB )而不用替换rEFInd或GRUB

我安装了rEFInd并将rEFInd添加到使用的启动管理器列表中 sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

使用F9重新启动以选择rEFInd,然后选择Ubuntu。

然后重命名bootmgfw.efibootmgfwms.efiusing

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

然后我重新启动,然后重新启动到rEFInd,而不必使用F9.Windows 10条目现在丢失了,所以我选择了Ubuntu。

然后取回我运行的Windows 10条目

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

然后,我重新启动,rEFInd没有按F9键出现,并且Windows 10作为条目出现。


1

对于mairabc的解决方案,这是一个进一步的解决方案,适用于像Vince或I这样无法启动到Windows的用户。您将需要fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

和hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

然后,您必须像这样编辑文件/etc/grub.d/40_custom:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

保存并做一个

# update-grub

重新启动进入Windows ...


1

在我的HP笔记本电脑上,我按以下步骤操作:

1-使用F9引导到ubuntu

2-检查Windows引导加载程序的位置

sudo efibootmgr -v

就我而言 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3-备份.efi文件:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4-将原始.efi文件替换为ubuntu一个(技巧):

sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

5-在grub上添加Windows 10菜单项。打开/etc/grub.d/40_custom并在文件末尾添加此菜单项:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6-保存40_custom并:

sudo update-grub

7-在BIOS上禁用安全启动(我不确定是否需要)

8-如果一切正常,默认情况下它将在ubuntu上启动,而Windows 10将是grub的另一个选项。

这比我想的要容易。


sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi工作完美。
埃文·卡罗尔

@EvanCarroll,您认为我应该改善答案吗?这确实是我要做的步骤。
Vitor Abella

好吧,老实说,我不确定这个答案是否必要。这是很多话,但您的方法与Tekin在不建议的部分中所用的相同。但是,对于那些仅使用Linux的用户来说,该方法非常简单。
埃文·卡罗尔

1

我有一台14英寸的HP 2018笔记本电脑,带有Windows 10和Ubuntu双启动。我曾经按F9键来选择想要的操作系统,而现在已经完成了几周。

解:

  • 关闭并按F10进入BIOS

  • 导航到BIOS列出引导顺序的部分

  • 在操作系统启动管理器上按Enter。

  • 使用F5或F6在Windows下切换Ubuntu。

  • 保存并退出。


0

这不是Windows问题!HP固件完全错误,因为它不使用(甚至没有正确支持)UEFI固件变量“ BootOrder”。我认为对此的唯一解决方法是用您的grub.efi替换Windows引导加载程序文件(如前所述)。


0

我的情况类似于MichalŽarnay在2015年8月19日15:20发表的文章:我得到了一些HP Pavillion Slimline 400-314微型塔,不需要预先安装的Windows 8,因此立即重新分区了HDD并安装了Ubuntu 14.04, rub 2。

不幸的是,Pavillion的BIOS菜单在引导配置上极为受限。它没有大多数其他人在这里描述的大多数奇特的选择。即使尝试更改启动顺序也无法成功。

我要使用的唯一解决方案是使用本博客 “替代命名解决方案”部分中所述的“替代命名”解决方法。


1
欢迎来到Ask Ubuntu!虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Mark Kirby

0

我确认@Vitor Abella的步骤解决了我的HP 2000笔记本电脑的双重启动问题,只是我将需要执行以下任一操作(如@mairabc所述):

  • 启用旧版引导(默认情况下,安全引导已禁用)

要么

  • 禁用旧版启动,并启用安全启动。

0

如果您不想在启动文件中四处移动,可以尝试手动更改启动顺序:

手动进入ubuntu并使用以下命令检查当前的引导顺序及其ID:

sudo efibootmgr -v

然后使用-o和ID更改引导顺序(按从左到右的引导顺序):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



示例
1.显示当前的引导设置

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.更改启动顺序(我们想先启动ubuntu,启动时会显示启动菜单):
请注意,第一次尝试出错,因为找不到Boot2003(软盘驱动器?),您可以看到重启后重新创建。

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3.重新启动。现在应该会出现启动菜单。(2003年自动重新添加):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

0

我知道grub4dos正在加载后,我的解决方案实现了

在此输入 men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi

0

在笔记本电脑HP-15-r248nf上将Windows 8升级到10的笔记本电脑HP-15-r248nf上安装了Ubuntu 14.04 64位后,除了与Realtek Wifi驱动程序的Wifi连接断开(使用来解决echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf)有关的问题外,顺利进行了,PC仍在Windows下启动。

通过grub的Ubuntu仅在引导阶段使用ESC键时可用。引导修复没有帮助,它实际上在grub中安装了很多选项,但仍无法直接访问grub。

实际上,只需要更改默认引导顺序即可。

  • 在启动PC后,在引导步骤中,键入Esc,然后按F10进入BIOS设置程序。
  • 转到“系统配置”选项卡,然后单击“启动选项”。按Enter键。禁用“安全启动”
  • 转到UEFI引导顺序。我使用F5 / F6将OS Boot管理器放在最上面(可能不是必需的)。
  • 使用Enter选择“ OS boot manager”。使用F5 / F6将ubuntu移至Windows Boot Manager上方的顶部。
  • 通过F10保存/退出使Bios设置保持不变,并确认所做的更改。

现在,您将被引导至grub,在其中选择了选项Ubuntu,该选项顶部标有星号,该选项将在短暂延迟后自动启动。


2
请格式化一下。我什至不知道这是否是答案。
TheWanderer 2015年

0

解决了我的EFI引导问题,如下所示:

efibootmgr -o重新启动后,该选项将被覆盖,因此它将不起作用。

但是,我发现该-n选项可以。因此,在实时运行usb-ubuntu的过程中efibootmgr,找出ubuntu 的四位数,然后使用该-n选项加载该数字。然后,为了能够从系统重新引导,请编写如下脚本:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

替换0000为ubuntu条目。运行crontab -e将允许您编辑cron。在上面添加一行:

@reboot /home/"user"/"path"/efibootsj

efibootsj一旦计算机启动,这将执行脚本(或任何名称)。

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.