我确信这个问题在这里被问了很多,但我似乎找不到对我有用的答案/解决方案。
我在 Samsung 850 SSD 上安装了 Windows 10,在 Samsung 750 SSD 上安装了 Linux mint 19.3。正如某些解决方案所述,我已将 BIOS 中的 SATA 配置设置为 AHCI。
当我将 BIOS 设置为“仅 UEFI”或“UEFI 和旧版”时,无论启动优先级如何,它都会启动到 Windows。如果我将 BIOS 设置为“Legacy only”,那么无论启动优先级如何,它都会启动到 Linux,甚至无法识别 grub 中任何位置的 Windows 驱动器。
在使用这款新主板(华硕 TUF GAMING X570-PLUS)之前,我曾经使用 EasyBCD 来管理对我有用的双启动。如果我使用这个或 grub 来达到我的目的,我不会大惊小怪。我想要的只是 Windows 成为启动时的默认选项,显然 Linux 作为一个选项。
在过去的一天里,我一直在努力寻找与我的听起来相似的所有可能情况。
答案1
解决方案
我会放弃 Ubuntu 的传统启动。 EFI 被设计为并排有多个引导加载程序。您可以做的最简单的事情是将 grub 安装到 Windows 驱动器上的 EFI 分区中,然后“仅 UEFI”启动。
去做这个:
- 启动进入 Linux
- 找到您的 EFI 分区。您可以使用
sudo blkid
它来找到合适的。我的是/dev/sdb2
。 将您的 EFI 目录挂载到
/boot/efi
,必要时创建该目录sudo mkdir /boot/efi # replace /dev/sdb2 with your EFI partition sudo mount /dev/sdb2 /boot/efi
安装 grub-efi。我假设这是标准 64 位 Intel CPU
sudo apt-get install grub-efi-amd64
将 grub 安装到 EFI 分区。
sudo grub-install /dev/sdb2
选修的:您可能需要告诉 BIOS 在哪里查找 EFI 文件。您可能需要进入 BIOS 设置来手动添加它。根据记忆,mint 使用与 ubuntu 相同的设置,因此 Grub 应该将其写入
EFI/ubuntu/grubx64.efi
.但您可能想通过以下方式检查:sudo ls -lh /boot/efi/EFI/ubuntu/
使用 UEFI 完成所有设置后,您应该会发现
update-grub
可以检测到 Windows 引导加载程序。这将为您提供启动 Windows 的菜单选项。因此,重新启动 Linux 并调用:sudo update-grub
讨论
BIOS 行为非常棘手,因为有很多不同的 BIOS,其启动逻辑的实现也有很大不同。
您说您的旧版磁盘在 UEFI + Legacy 中不会显示,但仅在 Legacy 中显示。我相信对于你的BIOS来说UEFI + Legacy
可能会被解释为“UEFI或者传统”而不是“UEFI和遗产”。
像这样的多磁盘设置出现问题并不罕见。与之相反罗恩的回答,我在使用多个磁盘时遇到的启动问题比使用单个磁盘时遇到的问题要多。在“仅限传统”时代,多个磁盘是一个很大的优势。但由于 UEFI 它可能会导致问题。例如,当您有多个 EFI 分区分布在多个磁盘上时,某些 BIOS 无法识别它...它们找到第一个 EFI 分区并停止查找。
UEFI 的设计使您可以并排拥有多个引导加载程序。由于您已经有适用于 Windows 的 EFI,因此同时安装 Grub 是有意义的。
答案2
当您只有一张磁盘时,尝试在该一张磁盘上同时安装 win10 和 linux,那么 Windows 启动管理器无法与 GRUB 正常工作,或者可能与任何其他启动管理器配合,就会出现问题。
您似乎表明您有两个磁盘,其中 Windows 单独位于一个磁盘上,Linux 单独位于另一个磁盘上。我认为这是最好的方法,因为它使启动管理器程序和磁盘启动分区完全分开。因此,您可以将其留给您的母板选择要启动的磁盘,之后一切正常......一个操作系统和/或启动管理器不知道另一个,也不可能发生冲突。
在第二种(首选)情况下,则取决于主板设置/功能
- 如果任何磁盘使用 MBR 和 dos 分区方案进行格式化,那么您需要启用该旧版BIOS模式,以便它可以识别这样的磁盘;您不能仅使用 UEFI。
- 通常,Legacy 模式还包括 UEFI,因此如果无知是福的话,这通常是最安全的设置,但识别 UEFI ONLY 设置需要格式化为具有 EFI 引导分区的 GPT 的磁盘。
Win10 肯定是 UEFI,而 Linux 可以两者兼而有之,因此您必须识别您的 Linux 是否安装在其特定磁盘上,如果该 Linux 磁盘是使用 dos 分区方案和 MBR 进行格式化的,或者是作为 GPT 完成的并且具有 EFI 分区。
只有当两个磁盘都有 EFI 分区时,才可以将主板设置为 UEFI ONLY。
此时,请在您的主板设置中查找启动管理器或者无论它被称为什么。我有一个 ASROCK 主板,启用他们的东西后,它默认启动我的 win10 磁盘,但如果我在 N 秒内选择,可以选择我的其他 [linux] 磁盘。这是一个示例图片:https://i.stack.imgur.com/kUZuu.jpg
在 UEFI w/Legacy 模式下,它应该只是指示主板按哪个顺序启动哪个磁盘的问题。它不需要比这更复杂。然后,当任何磁盘启动时,它的启动分区和启动管理器将接管,就像在单磁盘计算机中总是/应该那样。