Mic*_*ann 117 boot dual-boot hp uefi windows-10
我有一台 Windows 8 附带的 HP Pavilion Touchsmart 笔记本。我已经升级到 8.1,现在我想用 Windows 10 双启动一个 Ubuntu 发行版。使用 Windows 8.1 双启动时,Windows 启动管理器总是优先,即使在安装 GRUB 之后。我需要做什么才能让 GRUB 成为默认引导加载程序而不是 Windows 引导管理器?
Mic*_*ann 207
这是我在 StackExchange 网站上发表的最长的帖子,但这个过程需要大量的解释和对细节的关注。它也有些特定于所讨论的硬件,这需要更多的解释。
经过多次头痛、两次意外的硬盘驱动器重新格式化以及对 HP 有缺陷的固件实施的诸多挫折之后,我终于让 Xubuntu 和 Windows 10 很好地并排运行。我已经在 Windows 10 上做到了这一点,但它也应该在 Windows 8.1 上工作。这两个较新的操作系统都使用新的(ish)UEFI 固件系统,而不是传统的 BIOS 系统,这是与双引导最容易混淆的地方。我从很多地方阅读了很多关于使用 BIOS 系统进行双引导的说明,其中谈到 UEFI,就好像它只是一种不同类型的 BIOS,或者 BIOS 和操作系统之间的可选层。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 系统的下次启动选项,所以在您安装 GRUB 时必须禁用此功能。这可以通过执行以下操作来完成:
可以在此处找到更详细的说明。您可以在安装 GRUB 后重新启用 Fast Startup,这似乎不会导致 Ubuntu/GRUB 启动出现任何问题。只要确保它在安装过程中被禁用。
禁用快速启动后,关闭计算机。由于禁用了快速启动,Windows 将完全关闭,并且不会更改固件 EFI 管理器中的下次启动选项。(外行的术语:Windows 不会告诉您的 HP 系统在下次打开时引导其快速启动文件,因此它将使用 EFI 引导管理器的列表,因为它应该。GRUB 会将自己放在此列表的第一个位置。)
在安装 Ubuntu 之前,您需要使用 Live CD/USB 为其创建一个单独的分区。这样,它*不会覆盖 Windows。
*确保您有备份。不能保证——这取决于 Windows 决定在你的引导分区中做什么,也可能取决于你使用的 Ubuntu 版本/发行版——我没有全部使用它们。
要制作分区,您需要启动到您的 Live CD/USB,然后打开 gparted。有很多关于使用 gparted 的教程,而且很容易弄清楚,所以我将把细节留给你和互联网。
您将需要 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。因此,请先安装 Ubuntu 和 GRUB,然后为 Windows 引导管理器向 GRUB 添加一个条目。
步骤 4.1:清除旧的 EFI 条目(可选)
请注意这里。删除错误的东西会导致巨大的问题。
在安装 Ubuntu 之前,我们要确保过去操作系统安装的鬼魂在未来不会再回来困扰我们。在 UEFI 系统中,操作系统使用 EFI(可扩展固件接口)文件告诉固件:“嘿,我存在。在这里你可以找到我。” 安装新操作系统时,它会在 EFI 引导管理器的列表中添加一个条目,这为其提供了唯一的条目编号,并告诉 EFI 引导管理器它的 EFI 文件在哪里(Windows 注册了几个不同的 EFI 文件-一种用于常规启动,一种用于恢复启动,一种用于快速启动 - 可能更多取决于您的固件和操作系统版本)。EFI 启动管理器还跟踪启动顺序:指定首先启动的条目编号列表。如果您一直在使用 EasyBCD;bcdedit; 视窗' 引导修复或恢复工具;Linux 操作系统中的引导修复;或者即使您已经更新或重新安装了 Windows,您的 EFI 条目列表现在也很可能有一些重复项。至少,我的情况是这样。此处有重复项可能会使您的启动过程陷入困境,因为固件会筛选过时或错误的文件条目,直到找到可以运行的引导加载程序。它还可能导致引导循环,其中引导加载程序 A 将固件指向引导加载程序 B,引导加载程序 B 将其指向 A,然后事情开始需要非常非常长的时间...... 因为固件会筛选过时或错误的文件条目,直到找到可以工作的引导加载程序。它还可能导致引导循环,其中引导加载程序 A 将固件指向引导加载程序 B,引导加载程序 B 将其指向 A,然后事情开始需要非常非常长的时间...... 因为固件会筛选过时或错误的文件条目,直到找到可以工作的引导加载程序。它还可能导致引导循环,其中引导加载程序 A 将固件指向引导加载程序 B,引导加载程序 B 将其指向 A,然后事情开始需要非常非常长的时间......
无论如何,要查看您的 EFI 条目列表并查看需要清理的内容,请使用efibootmgr带有 Live CD/USB的软件包。您需要sudo apt-get install efibootmgr在终端中安装它,然后使用sudo efibootmgr. 默认情况下,您将获得一个条目列表,如下所示:
当我在摆弄 EasyBCD 和 bcdedit 试图让东西以正确的顺序启动后第一次使用这个工具时,我在这里有一百多个条目,其中大多数是重复的。
如果您的启动管理器列表不太杂乱,或者您不方便决定哪些可以删除,哪些不应该删除,只需跳到步骤 4.2。
要清除任何不需要的条目,请使用efibootmgr -b <hex_number> -B, wherehex_number替换为与引导条目一起列出的编号。因此,要删除上图中的USB Drive (UEFI)条目(编号为 Boot 2001),我将使用sudo efibootmgr -b 2001 -B. 您会注意到我留下了一些重复项(所有 3000 多个编号条目)。您可以使用efibootmgr不同的选项来查看条目的其他一些属性,例如它们指向的文件路径。这些条目看起来像是重复的,但它们都指向我的 HP 笔记本电脑用来更新其 BIOS 的不同文件。请小心您删除的内容。在这里更换东西可能非常困难或不可能。您还可以使用 efibootmgr 更改它显示的 BootOrder。请参阅手册页 有关此有用工具的更多信息。
步骤 4.2:安装 Ubuntu
在您清理了 EFI 启动管理器条目之后,如果您选择这样做,那么最后是安装 Ubuntu 的时候了。加载 Live CD/USB 后,从引导加载程序菜单中选择安装选项,或登录后从桌面启动它。在安装程序的第一页上选择您的选项。第二部分看起来像这样:(我使用的是 Xubuntu 14.04,所以你的安装程序可能会有所不同,但选项应该非常相似。)
如果您的安装程序没有检测到您的 Windows 安装(如我的),您需要选择“其他”选项。从那里,您将看到一个类似于您用来设置分区的 gparted 菜单的屏幕。只需选择您创建的分区,然后通过选择一个分区并单击“更改”将它们分配到正确的安装点。
您应该有 Windows 10 的安装盘。开始安装之前,请确保您有产品密钥,否则将无法安装/升级。当您引导至安装 CD/USB 时,安装程序非常简单。对我来说有点太简单了——唯一的按钮是“安装 Windows 10”或类似的东西,而 Windows 8、8.1 和 10 因其幕后安装而臭名昭著,它只是说“我们正在准备就绪”,并没有提供有关它对您的系统实际执行的操作的详细信息。如果到目前为止您已经按照这些说明进行操作,那么定期开始安装应该没问题。
如果您是从 Windows 8 或 Windows 8.1 升级,则无需对安装过程执行任何特殊操作。完成(很长的)安装,然后继续第 6 步。
如果您进行全新安装,安装程序会询问您要将 Windows 10 安装到何处。确保选择您在步骤 2 中创建的 FAT32 分区,而不是其他分区,否则该分区将被擦除和格式化。因为已经安装了 Ubuntu,所以 Windows 10 应该尊重引导分区,而不是重新格式化它。从 EFI 启动管理器的列表中清除垃圾条目也将释放 200 MB 微小启动分区中的空间,减少 Windows 感到困惑和生气并自行清除整个事情的机会。
安装或升级到 Windows 10 后,您需要重新启动到 Ubuntu 以更新 GRUB,以便它在其列表中包含 Windows 启动管理器。在执行此操作之前,请再次禁用快速启动。这与您在第 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 启动管理器,并自动将其添加到列表。
或者,您可以安装 Grub Customizer 来更改菜单项的顺序,并更改 GRUB 菜单的行为以及颜色和背景。您可以使用从终端安装它sudo apt-get install grub-customizer,然后运行sudo grub-customizer.
在与 Windows 操作系统共享的 UEFI 系统上使用 GRUB 时,请勿安装到 MBR。一些教程将其列为使用文件菜单下 Grub 定制器的“安装到 MBR”选项的关键步骤。你应该不是这样做的最UEFI系统。MBR(主引导记录)是为 BIOS 固件设计的,在某种程度上仍然被 Windows 引导加载程序使用。将 GRUB 添加到 MBR,当它已经在 EFI 条目列表中时,可能会导致很多毛球。如果您需要确保 GRUB 是引导顺序列表中的第一个条目(即,如果 Windows 始终在引导,即使您做的一切都正确),请使用efibootmgr(请参阅步骤 4.1)查看/编辑 EFI 管理器的引导顺序.
我没有提到安全启动完全没有,因为它通常不会影响 Ubuntu 的安装。许多双引导教程都谈到禁用它,但对于当前的 64 位安装程序通常不需要。但是,每台 PC 都是不同的,安全启动是相当新的(2012 年),因此不同的固件可能会以不同的方式实现。例如,我的 HP 固件版本包括一个“传统启动”选项,该选项禁用安全启动并将安装的操作系统视为 BIOS 固件:有些人建议启用此功能以安装双启动。在我的系统上以传统启动模式安装 Ubuntu 会阻止 GRUB 将自己添加到 EFI 条目列表中,因此它所能做的就是将自己添加到 MBR,Windows 启动管理器可以完全控制它。Windows 启动管理器进行了大量调整甚至显示条目列表,
有关Ubuntu 和安全启动和传统启动的更多信息,以及有关 UEFI 和 BIOS 安装之间的一般差异的信息,请参见此处。
小智 8
我不想复制潜在违反政策的帖子,因此我将链接我对这个问题的回答。简而言之,我有一台已经安装了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\
Run Code Online (Sandbox Code Playgroud)
您应该会在 EFI 中看到 Microsoft 文件夹和 Ubuntu 文件夹。
第 2 部分:将grubx64.efi从 Ubuntu复制到 Microsoft\Boot\ 作为bootmgfw.efi
首先创建bootmgfw.efi的备份
cd Microsoft\Boot\
rename bootmgfw.efi bootmgfw_.efi
Run Code Online (Sandbox Code Playgroud)
现在进行复制和重命名。
copy g:\EFI\ubuntu\grubx64.efi g:\EFI\Microsoft\Boot\
rename grubx64.efi bootmgfw.efi
Run Code Online (Sandbox Code Playgroud)
第 3 部分:卸载 EFI 文件夹
一一执行以下命令。
c:
mountvol g: /d
Run Code Online (Sandbox Code Playgroud)
现在重启你的电脑,你应该会看到 Ubuntu GRUB 加载,它应该有一个选项Windows UEFI 加载器来启动 Windows。
| 归档时间: |
|
| 查看次数: |
558864 次 |
| 最近记录: |