Answers:
这是我在StackExchange网站上发表的最长文章,但是此过程需要大量解释和注意细节。它也特定于所讨论的硬件,需要更多说明。
在经历了许多头痛,两次意外的硬盘格式化后,再加上对惠普错误的固件实施的不满之后,我终于让Xubuntu和Windows 10能够很好地并排运行。我已经在Windows 10上做到了这一点,但它也应该在Windows 8.1上工作。这两个较新的操作系统都使用新的(ish)UEFI固件系统,而不是传统的BIOS系统,在传统的BIOS系统中,双引导似乎引起大多数混乱。我从很多地方读到了很多东西,并提供了有关使用BIOS系统进行双重引导的说明,它们将UEFI视为只是另一种BIOS,或者是BIOS和OS之间的可选层。UEFI和BIOS是不同的东西。UEFI不是BIOS,BIOS不是UEFI。他们是完全不同的。
首先,不要使用EasyBCD。我看过很多过时的推荐使用EasyBCD的双引导教程,但该指南旨在与Windows 7和Windows Vista使用的传统BIOS固件一起使用,并且不适用于较新的UEFI固件(Windows 8、8.1或10)。如果您已经摆弄EasyBCD,请不要担心-最糟糕的可能是通过将内容写入MBR来弄乱EFI引导项。我们将在第4步中进行清理。说到MBR,请避免类似瘟疫。主引导记录是传统BIOS固件中用作存储在硬盘驱动器引导分区(或者,如果由Windows编写的,则以第一个分区为准)中的引导加载程序列表的列表。它旨在列出硬盘驱动器上的操作系统,并告诉固件哪个首先启动。这不适用于HP的UEFI固件。看来如果
您需要什么:
备份您不想丢失的所有Windows文件和文件夹。只要您有足够的可用硬盘空间来安装新的Ubuntu分区,此过程就不会干扰Windows文件。不过,应该是一个冒险的词。
Windows 8.1有一个“制作恢复盘”工具,但是在恢复我用它制作的备份时,我发现它没有用且无法正常工作。保留您不想丢失的文件的最直接方法是打开Windows资源管理器,然后将其复制到备份磁盘。它需要永远,但是值得。
您需要以管理员身份登录才能执行此操作。
在安装GRUB之前禁用快速启动非常重要,因为Ubuntu安装程序是否可以检测到Windows,取决于Windows在启动分区中的表现方式。在正确禁用快速启动的情况下,应该对其进行检测。检测将在步骤4中介绍。
Windows 8、8.1和10使用了这种称为“快速启动”的新奇事物,它告诉您的固件加载特殊的引导加载程序,该引导加载程序可将系统快速恢复到关闭前的状态。太酷了吧?好吧,因为它更改了EFI系统的next-boot选项,所以在安装GRUB时必须禁用此功能。这可以通过执行以下操作来完成:
可以在此处找到更详细的说明。您可以在安装GRUB之后重新启用“快速启动”,并且似乎不会对Ubuntu / GRUB引导造成任何问题。只要确保在安装过程中将其禁用即可。
禁用快速启动后,请关闭计算机。由于禁用了快速启动,因此Windows将完全关闭,并且不会在固件的EFI管理器中更改next-boot选项。(Layman的条款:Windows在下次打开时不会告诉您的HP系统启动其快速启动文件,因此它将使用EFI引导管理器的列表,而GRUB会将其放在该列表的第一位。)
在安装Ubuntu之前,您需要使用Live CD / USB为其创建单独的分区。这样,它就不会覆盖Windows。
*请确保您已备份。不保证-这取决于Windows决定在您的启动分区中执行的操作,也可能取决于您使用的Ubuntu版本/发行版-我还没有全部使用它们。
要创建分区,您需要启动到实时CD / USB,然后打开gparted。有很多关于使用gparted的教程,而且很容易弄清楚,因此我将把具体细节留给您和Internet。
您将需要4个分区:
引导分区。如果已经安装Windows,则无需执行任何操作-它应该已经是驱动器中的第一个分区之一。有时Windows还会在磁盘的开头创建另一个小的分区,称为Recovery。别管这个。
boot
。如果没有标签选项,请不要担心。你必须但是,请在此分区上设置“ boot”和“ esp”标志;没有它们,Ubuntu安装程序将忽略它并使用旧模式安装,而Windows(10)将拒绝安装,并显示错误“我们无法创建新分区或找到现有分区”。或不。这似乎取决于Windows那天的感觉...Windows分区。同样,如果您已经安装Windows,则该分区显然应该在引导分区和恢复分区之后的位置。这是您想要的位置,但是您需要调整它的大小以为您的Ubuntu分区和linux-swap分区腾出空间。使用gparted的“调整大小/移动”选项来执行此操作。Ubuntu至少需要5 GB,并且linux-swap分区的大小至少应为物理RAM的一半,因此请调整Windows分区的大小以为其留出足够的空间。gparted会警告您潜在的数据丢失-缩小分区不应破坏或破坏任何数据,只要您不将其缩小到正在使用的空间即可。
Windows
。这将使您在Windows安装过程中更加轻松。说到Windows安装程序,请先不要开始。如果您要同时安装Ubuntu和Windows的新安装,而不是从8或8.1升级到10,则首先安装Ubuntu 会容易得多。无论您是要从现有Windows操作系统升级到Windows 10,还是要同时将Windows 10和Ubuntu发行版安装到新的或新分区的硬盘上,首先安装Ubuntu都容易得多。Ubuntu使用GRUB 2作为其引导程序,它的工作方式与EFI引导程序应该的一样。Windows 10使用Windows引导管理器,它可以执行操作...很好,类似于Windows的执行方法...如果先安装Windows,则可能在引导过程中不按住特殊键就无法引导到Ubuntu阻止Windows启动管理器加载,因为Windows启动管理器在将GRUB添加到其引导加载程序列表时不遵守GRUB。因此,请先安装Ubuntu和GRUB,然后为Windows Boot Manager向GRUB添加一个条目。
步骤4.1:清除旧的EFI条目(可选)
请注意这里。删除错误的内容可能会导致巨大的问题。
在安装Ubuntu之前,我们要确保过去安装的OS不会在将来再次困扰我们。在UEFI系统中,操作系统使用EFI(可扩展固件接口)文件来告知固件:“嘿,我存在。在这里可以找到我。” 安装新的操作系统后,它将在EFI引导管理器的列表中添加一个条目,从而为其赋予唯一的条目号,并告诉EFI引导管理器其EFI文件在何处(Windows注册了多个不同的EFI文件,一种用于常规启动,一种用于恢复启动,一种用于快速启动,具体取决于您的固件和操作系统版本。EFI引导管理器还跟踪引导顺序:条目号列表,用于指定首先引导的内容。如果您一直在使用EasyBCD;bcdedit; 视窗' 引导修复或恢复工具;Linux操作系统中的引导修复;甚至即使您已更新Windows或重新安装了Windows,也很可能您的EFI条目列表现在有一些重复项。至少我的情况就是这样。由于固件会筛选过时或错误的文件条目,直到找到能正常工作的引导加载程序为止,此处存在重复项可能会拖累引导过程。它还可能导致引导循环,引导加载程序A将固件指向引导加载程序B,然后将固件指向引导加载程序B,然后事情开始需要非常非常长的时间... 固件会筛选过时或错误的文件条目,直到找到可用的引导程序。它还可能导致引导循环,引导加载程序A将固件指向引导加载程序B,然后将固件指向引导加载程序B,然后事情开始需要非常非常长的时间... 固件会筛选过时或错误的文件条目,直到找到有效的引导程序为止。它还可能导致引导循环,引导加载程序A将固件指向引导加载程序B,然后将固件指向B,然后事情开始需要非常非常长的时间...
无论如何,要查看您的EFI条目列表并查看需要清除的内容,请efibootmgr
与实时CD / USB一起使用该包装。您需要sudo apt-get install efibootmgr
在终端中使用进行安装,然后使用进行运行sudo efibootmgr
。默认情况下,您将获得类似于以下内容的条目列表:
当我对EasyBCD和bcdedit尝试使事情以正确的顺序启动后第一次使用该工具时,我这里有一百多个条目,其中大多数都是重复的。
如果您的启动管理器列表不太混乱,或者您不愿意确定可以删除哪些内容和不应该删除哪些内容,请跳至步骤4.2。
要清除不需要的所有条目,请使用efibootmgr -b <hex_number> -B
,其中hex_number
的替换为引导条目中列出的数字。因此,要删除上图中的USB Drive (UEFI)
条目(编号为Boot 2001),我将使用sudo efibootmgr -b 2001 -B
。您会注意到我留下了一些重复项(所有3000多个编号条目)。您可以使用efibootmgr
不同的选项来查看条目的其他一些属性,例如它们指向的文件路径。这些条目看起来像重复的条目,但是它们都指向我的HP笔记本电脑用来更新BIOS的不同文件。请小心删除。在这里更换东西可能非常困难或不可能。您也可以使用efibootmgr更改显示的BootOrder。参见手册页 有关此有用工具的更多信息。
步骤4.2:安装Ubuntu
清理完EFI Boot Manager条目后,如果选择这样做,那么终于可以安装Ubuntu了。装入实时CD / USB后,从Bootloader菜单中选择安装选项,或在登录后从桌面启动它。在安装程序的第一页上选择选项。第二部分如下所示:(我使用的是Xubuntu 14.04,因此您的安装程序可能有所不同,但是选项应该非常相似。)
如果您的安装程序没有检测到Windows安装(例如我的Windows),则需要选择“其他”选项。从那里,您将获得一个屏幕,该屏幕看起来与用于设置分区的gparted菜单相似。只需选择您创建的分区,然后通过选择一个分区并单击“更改”将它们分配给正确的安装点。
您应该具有Windows 10的安装盘。开始安装之前,请确保您附近有产品密钥,否则将无法安装/升级。当您启动到安装CD / USB时,安装程序非常简单。令我感到有点太简单了-唯一的按钮是“安装Windows 10”或类似的东西,而Windows 8、8.1和10因其幕后安装而臭名昭著,其中简单地说:“我们做好准备”,并且没有提供有关它对系统的实际作用的详细信息。如果到目前为止您已按照这些说明进行操作,则可以正常开始安装。
如果要从Windows 8或Windows 8.1升级,则安装过程不必做任何特别的事情。完成(很长)安装,然后继续执行步骤6。
如果要进行全新安装,安装程序将询问您要在何处安装Windows10。请确保选择在步骤2中创建的FAT32分区,而不是另一个分区,否则该分区将被擦除并格式化。因为已经安装了Ubuntu,所以Windows 10应该遵守引导分区,而不要重新格式化。将垃圾条目从EFI引导管理器列表中清除出来,还将释放200 MB的微小引导分区中的空间,从而减少Windows感到困惑和生气并自行清除整个内容的机会。
在安装或升级到Windows 10之后,您需要重新引导到Ubuntu来更新GRUB,因此它包括Windows Boot Manager。在执行此操作之前,请再次禁用快速启动。这与您在步骤2中所做的非常相似。控制面板和设置UI有所不同,但是大多数选项仍然存在。
再次禁用快速启动后,重新启动计算机。
如果Windows默认情况下启动,则需要按住笔记本电脑的特殊键才能进入系统的固件菜单。在我的HP Touchsmart上,该键是Esc。其他常用键包括F12,Delete,F10 ...您的计算机手册应该可以在这里为您提供帮助。从固件菜单,启动到GRUB。应该有一个“选择启动设备”或类似选项的选项,并且在那里应该列出Ubuntu或GRUB。如果未列出,请查找从EFI文件引导的选项,然后浏览至/EFI/ubuntu/grubx64.efi或(如果启用了安全引导)或EFI / ubuntu / shimx64.efi。这些文件的实际路径可能会有所不同,具体取决于您的选项以及引导分区的设置方式,但是文件名应该相同。选择这些.efi文件之一应启动到GRUB,然后可以在其中启动到Ubuntu发行版。登录后,打开终端并输入sudo update-grub
。这将运行GRUB用来编译grub.cfg的os-prober脚本,该脚本告诉grub的EFI文件包括哪些条目,使用什么颜色等。os-prober脚本应标识Windows Boot Manager,并自动将其添加到名单。
(可选)您可以安装Grub Customizer来更改菜单项的顺序,并更改GRUB菜单的行为以及颜色和背景。您可以使用在终端上安装它sudo apt-get install grub-customizer
,然后运行sudo grub-customizer
。
在与Windows操作系统共享的UEFI系统上使用GRUB时,请勿安装到MBR。一些教程将其列为使用“文件”菜单下的Grub Customizer的“安装到MBR”选项的关键步骤。你应该不是这样做的最UEFI系统。MBR(主引导记录)是为BIOS固件设计的,Windows引导加载程序在某种程度上仍在使用。将GRUB添加到MBR时(已在EFI条目列表中)可能会导致很多麻烦。如果您需要确保GRUB是引导顺序列表中的第一个条目(即,即使您所做的一切正确,即使Windows始终在引导),也可以使用efibootmgr(请参阅步骤4.1)查看/编辑EFI Manager的引导顺序。 。
我没有提到安全启动根本没有,因为它通常不会影响Ubuntu的安装。许多双重引导教程都讨论了禁用它,但是对于当前的64位安装程序通常不需要这样做。但是,每台PC都不同,并且安全启动是一个相当新的版本(2012年),因此不同的固件可能会实现不同的功能。例如,我的HP固件版本包括“传统启动”选项,该选项禁用安全启动并将已安装的操作系统视为BIOS固件:有人建议启用该功能以进行双启动安装。在我的系统上以传统启动模式安装Ubuntu时,GRUB无法将其添加到EFI条目列表中,因此它所能做的就是将其添加到Windows Boot Manager可以完全控制的MBR中。Windows Boot Manager进行了大量调整,甚至显示条目列表,
有关Ubuntu和Secure Boot和Legacy Boot的更多信息,以及有关UEFI和BIOS安装之间的一般差异的信息,请参见此处。
我不想重复发布可能违反政策的帖子,因此我将针对这个问题链接我的答案。简而言之,我有一台已经安装了Windows 10的三星笔记本电脑,并且我试图安装具有多个实例的linux。Ubuntu 12.04、14.04和16.04。我在设置BIOS中使用了引导修复,并更改了引导优先级,这导致了功能正常但杂乱的GRUB首先加载。用户Michael Hoffmann的回答为在空白驱动器上安装以及如何清理GRUB提供了很好的解释,但是我不想删除Windows 10安装。
详细解释可以在我的帖子中找到这里。
我可以向您介绍此问题的简单技巧,如果没有合法的解决方案可以解决您的问题,请使用它。
由于Windows不断更改启动顺序,因此黑客将诱使Windows将Ubuntu grub识别为Windows启动文件,即bootmgfw.efi。
第1部分:在Windows上访问EFI文件夹
以管理员身份打开cmd并挂载EFI文件夹以对其进行访问。一一执行以下命令。在下面我已将字母g分配给安装座,请确保您在PC中分配了未分配的字母。
mountvol g: /s
g:
cd EFI\
您应该在EFI中看到一个Microsoft文件夹和Ubuntu文件夹。
第2部分:将grubx64.efi从Ubuntu 复制到Microsoft \ Boot \作为bootmgfw.efi
首先创建bootmgfw.efi的备份
cd Microsoft\Boot\
rename bootmgfw.efi bootmgfw_.efi
现在进行复制并重命名。
copy g:\EFI\ubuntu\grubx64.efi g:\EFI\Microsoft\Boot\
rename grubx64.efi bootmgfw.efi
第3部分:卸载EFI文件夹
一一执行以下命令。
c:
mountvol g: /d
现在重新启动PC,您应该会看到Ubuntu GRUB加载完毕,其中应该有一个Windows UEFI加载程序选项来引导Windows。
解决上述问题的方法更简单。
我发现了一个更简单的解决方案,该解决方案可在装有Windows 10的HP笔记本电脑(355 G2)上运行
从这里的某个答案(特别是在这里,您的超级详细答案)中汲取灵感(诚实地说,更像是从答案中剥离出来,然后对其进行精简),这是实现这一目标的方法,也是从我最近的问答环节(在UEFI上安装Ubuntu之后可以安装Windows吗?)。
第一种也是最简单的方法,因为似乎UEFI优先考虑了第一个已安装的系统(至少在这些HP系统中,我有一个HP OMEN实现了此目的),而不是优先考虑最新安装的传统。由于UEFI本机支持多个引导程序,因此甚至有可能发生这种情况。
这意味着要优先考虑Ubuntu的Grub,必须首先安装Ubuntu。现在不必担心,因为Windows 10可以很好地与Ubuntu一起安装,只需在Windows安装程序中创建Windows分区,然后安装即可。
然后,在完成设置后,尝试从Windows重新启动,或者,当然,您应该在启动到Ubuntu之前执行此操作,通过转到电源选项来关闭快速启动选项,然后选择“电源按钮的功能” ”,然后取消选中“打开快速启动”复选框。
现在另一种方法是通过efibootmgr。我对此没有太多经验,所以我决定向一个了解UEFI来龙去脉的好人,罗德·史密斯(Rod Smith)借钱。他在这里回答了这个问题:使用efibootmgr更改引导顺序。这是他逐字说的话:
首先,在启动EFI的计算机上抱怨启动文件距离磁盘的起始位置很远。BIOS下有一些限制(具体取决于BIOS的使用时间),但是即使在(现代)BIOS下,您的750GB磁盘也不会出现问题。
其次,您可以
BootOrder
使用efibootmgr
的-o
选项更改变量,如下所示:须藤efibootmgr -o 0,1,2
此命令将首先设置两个
ubuntu
实例,然后是Windows Boot Manager
条目。那应该可以解决问题。不幸的是,某些EFI出现故障,会“忘记”该BootOrder
条目或行为不当。如果遇到问题,建议您在Windows管理员命令提示符窗口中尝试以下命令:bcdedit / set {bootmgr}路径\ EFI \ ubuntu \ shimx64.efi
(如果您已停用的安全引导,可以替换
shimx64.efi
使用grubx64.efi
,虽然无论是应禁用安全启动运行。)如果失败,则您的固件可能有故障。HP可能有更新。如果没有,或者没有帮助,并且您处于计算机的退货期限内,请将其退还以获取退款,并获得没有损坏的东西。如果您无法做到这一点,那么您将陷入非常丑陋的解决方法领域,例如重命名GRUB,使其假装为Windows引导加载程序。请参阅此处,以获取有关该主题的一些信息,尽管是专门为rEFInd编写的。但是,基本原则适用于任何事物。
因此,基本上,使用efibootmgr更改引导顺序。正确执行此操作后,应先安装Ubuntu,而不要先启动Windows。:)
希望对您有所帮助!