首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在UEFI模式下将Linux添加到GRUB启动菜单到Windows 10的双重引导

在UEFI模式下将Linux添加到GRUB启动菜单到Windows 10的双重引导
EN

Unix & Linux用户
提问于 2017-01-09 16:36:11
回答 2查看 12.7K关注 0票数 2

我有戴尔Inspiron 5559。目前,它是在UEFI模式下启动内置的Windows 10。我需要在Kali Linux和Windows 10之间进行双重引导。我在线学习了许多教程,但它们都是不同的。

有人能告诉我如何用Windows双引导Kali Linux吗?我已经安装了Kali通过启动它与现场USB。但是我的问题是已经安装了GRUB加载程序,但它并不是要我选择Windows还是Linux。引导加载程序启动Windows 10默认。

当我尝试在windows中添加带有easy的Linux时,它显示的是:

代码语言:javascript
运行
复制
EFI boot loader Detected--- Easy BCD has detected that your machine is currently booting in EFI mode. Due to limitations set by Microsoft, many of easy BCD multi booting features cannot be used in EFi mode and have been disabled.
EN

回答 2

Unix & Linux用户

发布于 2018-08-27 14:56:15

有几件事情可能会出错。

1.)Kali安装程序可能已经安装了传统的BIOS/MBR风格的GRUB版本,而不是UEFI版本。如果您的固件更喜欢UEFI风格的引导而不是遗留的BIOS样式,那么这个引导加载程序将完全无效,因为一旦固件看到Windows引导加载程序已经到位,它就不会加载旧风格的主引导记录。

2.)Kali安装程序可能已经安装了UEFI版本的GRUB,但是没有安全引导所必需的shim.efi -如果启用了安全引导,系统UEFI固件的安全引导实现可能会悄然绕过任何没有必要的安全启动签名的引导加载程序。

(其他UEFI实现将输出一条可怕的安全错误消息,如果启用了安全引导,并且遇到缺少或无效安全启动签名的引导加载程序。这至少会使这种情况更容易解决。)

3.)Kali安装程序可能已经成功地安装了一个安全的UEFI引导加载程序,但未能在固件NVRAM中注册。或者,固件实现将只接受标准Windows引导程序的引导文件名--这将限定为固件错误。

识别这些情况的第一步是让系统启动到Windows 10,以管理员身份运行命令提示符,并使用bcdedit /enum firmware命令。这将列出在NVRAM和BootOrder设置中注册的启动选项。如果输出中没有提到Kali,那么暂时可以暂时排除问题#2 --至少有问题#1或#3。

如果问题#2看起来很可能,可以通过禁用安全引导或清除安全启动主键(PK)变量来解决这个问题。UEFI设置通常(但可能不是总是)提供了一种方法来完成这两件事。

下一步需要从实时USB引导Kali (或其他Linux),并使用它来访问HDD上的Kali安装。在HDD上挂载Linux分区(S)后,转到<mountpoint>/usr/lib/grub目录并列出该目录的内容。如果有一个名为x86_64-efi的子目录,则安装了UEFI版本的GRUB,并且肯定可以排除问题#1。

另一方面,如果有一个名为i386-pc的子目录,则安装了传统的BIOS/MBR版本的GRUB,从而确认了问题#1。修复该问题需要对基于HDD的安装进行着色,并使用包管理工具将grub-pcgrub-pc-bin包分别替换为grub-efi-amd64[-signed]grub-efi-amd64-bin。(如果无法禁用安全引导,则获取第一个包(如果可用)的-signed版本,以及shim包。)

如果发现存在问题#3,则可以在Kali中使用efibootmgr命令来修复它--但前提是该Live可以在UEFI本地样式中引导。如果Live以遗留的BIOS/MBR方式引导,遗留兼容性固件代码将隐藏efibootmgr命令所需的接口。

用于修复Windows端问题#3的替代工具:

  • 过去有一个名为EasyUEFI的程序,它来自与EasyBCD相同的制造商。即使是这个程序的完全免费版本也是足够的。不幸的是,现在只有试用版是免费的。
  • 似乎有一个名为BOOTICE的中国开发商的程序,显然可以完成这项工作。我还没试过呢。
  • 我认为Windows10‘S本机bcdedit命令可能能够注册一个新的UEFI引导加载程序,但是这个过程似乎有点尴尬,我还没有测试过这个。
  • 您可以使用mountvol X: /S作为管理员访问Windows中的EFI系统分区。完成后,用mountvol X: /D再次隐藏ESP。
票数 1
EN

Unix & Linux用户

发布于 2017-01-09 19:14:59

您是否试图将linux的Kali (或其他发行版)安装到具有windows 10的现有硬盘上?

如果没有,并且您的linux位于另一个硬盘上,那么最简单的方法是在启动之前对F12进行访问,以访问UEFI启动菜单;这不是GRUB2菜单。此时,EFI启动菜单(不是BIOS菜单和GRUB2菜单)将允许您选择在哪个启动分区上启动哪个.efi文件。你可以用这种方式进行双引导。

认识到你有一台戴尔inspiron,一台笔记本电脑,那么你最有可能在1驱动器的一切。当启动/重新启动将修复/删除安装到windows 10引导分区中的任何引导加载程序时,报告都是windows 10。https://ubuntuforums.org/showthread.php?t=2294337

当您执行F2输入安装程序并转到启动菜单时,您将有一个菜单选项来选择哪个.efi引导文件。你的笔记本电脑只有一个驱动器,所以只有一个选择,这将开启windows 10。但例如,如果你有一台可以容纳4个硬盘驱动器的塔pc,每个硬盘都有自己的启动分区,那么EFI启动菜单中就有4个选项。

我相信您需要做的是,因为windows 10是微软的,而且它不能很好地共享引导菜单/分区,您需要获得主板EFI菜单来自动选择一个与OEM Windows 10引导分区不同的启动分区,其中这个不同的分区上只有GRUB2。当情况发生时,Grub2将在windows 10引导加载程序之前,然后让GRUB2 2的S菜单提供选择,选择windows 10分区或您的linux分区进行引导。这样,windows 10只会在自己的分区上不受干扰地看到自己的引导管理器。至少在windows 7中,修改windows启动分区更为宽容;我相信,随着windows 10和安全引导思想的出现,这一切都已经停止了。

因此,您想要在您的戴尔oem win10硬盘上创建一个新的分区,完全独立于windows分区,并在其上安装GRUB2。例如,这可能是分区#4。

您是否可以让主板固件/EFI指向磁盘上的分区#4,而不是分区#1来启动GRUB2,我不知道。与其说我是GRUB2,不如说我是一个ELILO的人,而且我的引导分区一直都是磁盘上的分区#1。但是如果可以的话,那么配置GRUB2以提供启动windows 10或linux的2个菜单选项。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/336038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档