在外部 SSD 上双重启动后主机无法启动

在外部 SSD 上双重启动后主机无法启动

我是新手,对编码不是很专家,但我会尽力向我解释最好的方法。我有一台默认安装了 Windows 的电脑,但为了在大学工作,我必须安装 Linux 发行版,我选择了 ubuntu。为了不在同一个 SSD 上混合两个东西,我决定进行双启动,但将 Windows 保留在内部 SSD 上,将 ubuntu 保留在外部 SSD 上。我遵循了几条准则并遵循了 ubuntu 安装程序上的所有步骤,并且始终选择外部 SSD 作为交换空间和 ext4/以及“用于引导加载程序安装的设备”,以便能够独立于 SSD 所在的 PC已连接(与 RAM 和处理器兼容),以便能够在没有外部 SSD 的情况下正常使用 Windows,而当我将 SSD 连接到我的电脑或任何其他能够使用我的 ubuntu 的电脑时。现在我有一个问题:ubuntu和windows都正常工作,如果我在插入外部SSD(带有ubuntu的那个)的情况下打开电脑,我会拥有所有的windows数据,但如果我在没有它的情况下打开电脑,它会告诉我:

                                  GNU GRUB version 2.06

Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible devices or file completions

请帮助我解决这个大问题,如果有必要我可以删除ubuntu,里面没有文件或重要的东西,我可以安装它而不会像现在这样失败,重要的是我需要正常启动Windows而无需外部SSD已连接并恢复正常情况。

注意:我已经在堆栈或其他社区上阅读了很多内容,但我找不到遵循步骤的答案,并且: bootrec.exe /fixboot bootrec.exe /fixmbr 不起作用,因为 bootrec.exe /fixboot给我“拒绝访问”,我不知道在 ubuntu 上安装 grub 以及它是否有用。

提前致谢

答案1

ubuntu 和 windows 都可以正常工作,如果我用外部 SSD 打开电脑,我就会拥有所有 Windows 数据

在安装操作系统(任何操作系统)时,尤其是在进行双引导或多引导设置时,用户必须熟悉引导过程以及如何解决诸如本问题中提出的小问题。对于十年前的任何计算机,用户都必须了解 UEFI 启动过程并认识到多个引导程序所在的 ESP(EFI 系统分区)的重要性。

注意-当使用 Ubuntu 或衍生版本进行双引导并将 Ubuntu 安装在可移动驱动器中时,用户还应该知道 Ubuntu 安装程序始终将引导加载程序 (Grub) 安装在正在使用的 ESP 中。它不允许在可移动驱动器中创建额外的 ESP。

这意味着,在像您这样的非常典型的情况下,Grub 与 Windows 引导加载程序管理器一起安装在内部驱动器的 ESP 中。许多人认为这是“错误”,但也可以说这是一个功能。这不是问题,除非您希望 Ubuntu 安装是可移植的,即可以在其他计算机上启动。事实并非如此,一切都很好,就像现在一样。

您需要访问 UEFI 设置 - UEFI 是取代 BIOS 的固件,并且仍然被许多人和制造商错误地命名 - 并将启动顺序更改回 Windows:

UEFI(“BIOS”)设置 > 启动菜单。找到“操作系统选择”项或等效项,您应该在其中看到“Ubuntu”,然后打开该子菜单并选择“Windows 引导加载程序管理器”。

这将导致 Windows 直接启动。每当您想使用 Ubuntu 时,(1) 连接外部驱动器,(2) 执行相反的操作或使用更简单的准时启动菜单/启动覆盖菜单(如果可用)。为此,请查阅您的用户手册或制造商的在线资源。尽管绝大多数计算机遵循上述逻辑和工作流程,但可能存在例外和/或不同的术语。您需要熟悉自己的固件 (UEFI) 细节。否则,这确实像所描述的那样微不足道,不需要chroot(在这种情况下毫无意义)甚至efibootmgr(编辑 EFI 条目和管理启动顺序有一定意义,但在这种情况下实际上没有必要)。

PS - 下次您“需要 Ubuntu”时,请考虑使用虚拟机。

答案2

chroot如果 grub 损坏,您也许可以使用该命令来安装它。这可能需要 Linux 安装环境(在您的情况下可能是 Ubuntu)来打开终端并运行:

lsblk                             This allows you to see what drives you have connected to your computer. Find a partition that matches the capacity of your Ubuntu drive. That will be your /mnt.
                                  The first partition on that drive should be around half a gibibyte in size (512MiB or so), which will be your /mnt/boot directory.

mount /dev/sdXY /mnt              This mounts your main partition for chroot to be invoked into.
(e.g. /dev/sdb2)

mount /dev/sdXZ /mnt/boot         This mounts your boot partition for GRUB to be reinstalled to.
(e.g. /dev/sdb1)

chroot /mnt                       You are now in your unbootable drive's shell. From here you can reinstall grub with the following steps.

sudo apt install grub-efi-amd64   This command installs the bootloader. This is assuming you are using an Intel or AMD processor and are booting through UEFI.

exit                              Exits the chroot shell.

reboot                            Self-explanatory.

注意:这些命令做出了很多假设,例如 /mnt 是一个空文件夹(它应该位于安装程序中),并且您的计算机是具有 UEFI 功能的 Intel/AMD 系统,用于引导 Linux。这还不是全部!请务必对此进行自己的研究。

答案3

将计算机启动至 SSD 上的 Ubuntu。安装程序:efibootmgr。

Efibootmgr 将允许您更改 UEFI 计算机的启动顺序。在 Ubuntu 系统中,运行 efibootmgr。该命令将显示当前的引导顺序(可能是 grub 首先)。但它还会向您显示 Windows 启动管理器启动项。您可以使用 efibootmgr -o 命令更改引导顺序,将 Windows 放在第一位。然后,当您启动(未连接 SSD)时,您应该启动到 Windows(因为您的系统将首先查找它)。

请尝试阅读有关 efibootmgr 的内容。如果您不确定,请在尝试任何操作之前先在​​这里询问。考虑发布 efibootmgr 命令的结果(不带任何选项),以便可以看到当前的顺序和条目。

答案4

如果您仍然可以访问第二个驱动器,这些步骤对我有用:

  1. 启动至 Windows 并打开磁盘管理器。将 SSD 上的驱动器 C: 标记为“活动”。您可以通过右键单击分区来完成此操作。

  2. 将启动文件复制到原始驱动器。转到命令提示符(或恢复命令提示符),然后运行:

bcdboot C:\Windows /s C: /f BIOS
bcdboot C:\Windows /s C: /f UEFI

相关内容