无法在2个操作系统之间切换

无法在2个操作系统之间切换

我的电脑中有 2 个,一个是三星 970 EVO 500GB M.2 NVMe,另一个是三星 SATA SSD 860 EVO(250GB)。 Windows 安装在我的 m.2 驱动器上,最近我安装了 Pop!我的 SATA SSD 上的 _OS(Ubuntu 分支)。

我仍然不知道如何在启动时显示一条消息来在这两个操作系统之间进行选择,除非我进入BIOS并手动选择系统应该从哪个驱动器启动。

有人知道如何做到这一点吗?

我什至检查了 Windows 高级选项,在“默认操作系统”下拉列表中我只看到列出了 Windows 10。为什么 Windows 无法看到另一个驱动器上的第二个操作系统?

我什至检查了 Windows 高级选项

答案1

Windows 的“默认操作系统”仅列出可使用 Windows 引导加载程序启动并注册到 Windows BCD 的操作系统。此选项的存在主要是为了允许启动旧版本的 Windows(如果您在旧版本的同时安装了新版本的 Windows),而不是进行更新。

我的猜测是您的 Windows 安装使用本机 UEFI 引导样式,而您的 Pop!_OS 使用旧版 BIOS 样式。

即使启用了现代 UEFI 固件中的 BIOS 兼容性支持模块 (CSM),它也会被禁用以引导本机 UEFI 引导加载程序,并且大多数引导加载程序不知道如何重新打开 CSM 以转​​换到 BIOS 样式的引导过程。 CSM 为传统式引导加载程序使用的 16 位传统 BIOS 调用提供支持。因此 UEFI 引导加载程序通常无法启动传统 BIOS 风格的引导加载程序。

另一方面,当 CSM 启动传统 BIOS 式引导加载程序时,它需要禁用本机 UEFI 固件接口来访问 UEFI 引导设置,因为在 16 位传统 BIOS 环境中根本没有等效的接口。因此,传统 BIOS 引导加载程序也无法启动本机 UEFI 引导加载程序。由于 UEFI 固件接口的一部分(称为 UEFI 运行时服务)需要将本机 UEFI 引导加载程序正确安装到系统磁盘上,因此使用传统 BIOS 方法引导的操作系统甚至无法满足所有要求稍后安装本机 UEFI 引导加载程序所需的步骤。

由于这些限制,您引导操作系统安装程序的方式通常决定了操作系统的引导方法:如果操作系统安装程序以旧版 BIOS 样式引导,它将安装旧版 BIOS 引导加载程序。如果安装程序以 UEFI 方式启动,则会分别安装 UEFI 引导加载程序。

将 Pop!_OS 切换为使用 UEFI 样式引导加载程序所需的步骤大致如下:

  • 首先,在 Pop!_OS 中安装该软件包,如果可用的话grub-efi-amd64也安装该软件包。grub-efi-amd64-signed这使您的操作系统能够安装本机 UEFI 版本的 GRUB。您还应该安装该efibootmgr软件包,因为稍后您可能需要它来调整本机 UEFI 启动设置。

  • 二、开机原生 UEFI 风格从外部媒体并访问您的 Pop!_OS 安装。如果 Pop!_OS 安装介质提供救援模式,它可能会自动为您执行此操作。如果您需要使用其他类型的实时 Linux 媒体,您可能需要执行以下操作:

    sudo mkdir /old_installation sudo mount /dev/ /old_installation sudo mount -t proc proc /old_installation/proc sudo mount -t sysfs sysfs /old_installation/sysfs sudo mount -o bind,rw /dev /old_installation/dev sudo mount -t efivarfs efivarfs /old_installation/sys/firmware/efi/efivars sudo mount /dev/ /old_installation/boot/efi sudo chroot /old_installation /bin/bash

(如果您的安装使用 LVM、磁盘加密或其他复杂功能,则需要执行其他步骤。)现在您应该在 Pop!_OS 安装环境中以 root 身份运行。

首先,运行efibootmgr -v以查看本机 UEFI 启动设置。它应该提到 Windows 启动管理器,但此时没有 GRUB 版本。

grub-install --target=x86_64-efi /dev/<your NVMe disk>

这应该会自动安装 UEFI 版本的 GRUB 以与 Windows 引导加载程序共存。如果再次运行efibootmgr -v,您应该看到 GRUB 已添加到 UEFI 引导设置中,并且已被设置为引导顺序中的第一个选项。

然后运行update-grub让它自动检测您计算机上现有的所有操作系统并为您构建 GRUB 启动菜单。它应该告诉您已检测到 Windows。

答案2

您必须安装 Grub 界面。它将让您在默认操作系统(您可以在 BIOS 中更改)和其他选项之间进行选择。几秒钟后它将自动选择默认值。

我自己是初学者,所以我不能给你代码。祝你好运 !

答案3

Windows 尚未加载,因此在启动之前它不会看到任何内容;您的固件会在设置为 #1 启动优先级的驱动器上查找启动管理器,例如 Windows 系统管理器或 GRUB。

仅当 GRUB(或同等版本)安装在您在 BIOS/固件中设置的驱动器上时,您才会看到菜单。

重新安装 Linux 以在 M.2 驱动器中与 Windows 10 一起运行,GRUB 将出现,提供 Windows 10 或 Linux。

相关内容