两部分解决方案:

两部分解决方案:

在外部硬盘上安装了 Linux。现在,如果不插入硬盘,我就无法启动 Windows 10。我必须先从硬盘启动,才能进入 Linux grub,然后选择启动 Windows 10。

我希望能够启动 Windows 10,而无需插入 HDD,也无需通过 Linux grub。

如有任何问题,请随时提问。

任何其他有此答案的帖子都可以随意链接。

答案1

两部分解决方案:

第 1 部分:从内部磁盘的 EFI 分区中删除 Ubuntu 条目

看:如何在 BIOS 启动菜单中删除“Ubuntu”?(UEFI)

步骤1:以 UEFI 模式从 Live DVD/USB 启动 Ubuntu 并选择“无需安装即可试用 Ubuntu”选项。

第2步:通过Ctrl++打开终端并安装:AltTefibootmgr

sudo apt-get install efibootmgr

步骤3:然后添加内核efi支持

sudo modprobe efivars

步骤4:然后运行sudo efibootmgr检查你的启动项。它将返回如下内容:

BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 2001,0003,0005,0006,0000
Boot0000* Lenovo Recovery System
Boot0001* EFI Network 0 for IPv6 (B8-88-E3-84-F3-EF)
Boot0002* EFI Network 0 for IPv4 (B8-88-E3-84-F3-EF)
Boot0003* Windows Boot Manager
Boot0004* EFI USB Device (SanDisk)
Boot0005* ubuntu
Boot2001* EFI USB Device

步骤5:然后删除您不需要的选项。在此示例中,Ubuntu 是条目 5。可以调用以下命令删除条目 5 并将其从 BootOrder 中删除。

(注意:执行以下命令前请确保输入正确的启动项编号)

sudo efibootmgr -b 5 -B 

第 6 步:删除分Ubuntu区内的文件夹EFI

假设您的 EFI 分区是/dev/sda2,那么将其安装在任意位置的空文件夹中。

sudo mkdir /mnt/efipart
sudo mount /dev/sda2 /mnt/efipart

现在我们必须在这个分区中找到 Ubuntu 或任何其他发行版名称的目录。它通常位于 EFI/distro_name 下。

删除该目录及其内容(请确保删除正确的目录)

sudo rm -r ubuntu

第一部分到此结束。现在是时候

检查是否有效

关闭计算机并断开所有外部驱动器,并移除 Live DVD(如果使用)。启动计算机。如果一切顺利,它应该会像安装 Ubuntu 之前一样直接启动 Windows 10。

第 2 部分:修复装有 Ubuntu 的外部硬盘中的 grub 和 EFI

是否仍然可以使用 UEFI 将 Ubuntu 安装到外部硬盘?

步骤1:再次以 UEFI 模式从 Live DVD/USB 启动 Ubuntu 并选择“无需安装即可试用 Ubuntu”选项。

将要修复的外部硬盘与 Ubuntu 连接起来。记下驱动器名称。这里我假设它是/dev/sdc,但你的可能不同。

第2步:安装 grub-efi-amd64-bin 包。

sudo apt install grub-efi-amd64-bin

这只会安装所需的资源。它不会将您现有的 MBR 样式安装切换为 UEFI 并颠覆一切。

步骤3:缩小 GParted 中的 Ubuntu 分区,为 ESP 腾出空间。ESP 的建议大小范围为 100 MB 到 500 MB。我腾出了大约 250 MB。

注意:ESP 在磁盘上的位置无关紧要,从末尾缩小 Ubuntu 分区几兆字节应该快速且安全。从开头缩小并不安全。

但需要注意的是,您的 ESP 应该是主分区,而不是扩展分区或逻辑卷的一部分,分区号从 1 到 4 都可以,上面的数字表示 MBR 分区表上的扩展分区。

选择FAT32作为文件系统并设置启动标志。

步骤4:挂载刚刚创建的 ESP 分区和缩小的根文件系统。

sudo mkdir -p /mnt/esp
sudo mount /dev/sdc3 /mnt/esp
sudo mkdir -p /mnt/rootfs
sudo mount /dev/sdc1 /mnt/rootfs

注意:在此示例中,/dev/sdc3是 ESP 分区,/dev/sdc1是根分区。您的分区可能不同。挂载点/mnt/esp/mnt/rootfs只是为了配合本答案的其余部分而选择的示例。

使用以下命令安装 GRUB 的 EFI 映像和最小配置文件:

sudo grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable /dev/sdc

步骤5:/etc/fstab使用以下命令检查并更新文件:

sudo nano /etc/fstab

您的 UEFI Ubuntu 安装可能包含类似下面的一行/etc/fstab

UUID=1234-567F /boot/efi vfat defaults 0 1

其中1234-567F是示例。如果存在这样的行,请使用 Gparted 或命令 查找外部驱动器中新 EFI 分区的 UUID sudo blkid。更新文件中的 UUID,然后nano使用Ctrl+X后跟Y和保存并退出编辑器Enter

就是这样。现在外部驱动器应该可以启动了。

希望这可以帮助

答案2

对于 UEFI 安装:

  1. 假设您在外部硬盘上放置了一个 EFI 分区,只需将整个内部 EFI 复制到外部磁盘的 EFI 分区即可。这样外部磁盘就可以使用 grub 启动,然后可以选择 Ubuntu 或 Windows。
  2. 将启动优先顺序改为首先启动外部硬盘,然后启动 Windows。当没有外部磁盘时,Windows 将启动。

甚至不要试图删除内部磁盘上的 /EFI/ubuntu,将其视为备份,无论如何它都不会运行。

答案3

似乎您已选择外部硬盘来安装引导程序 (Grub)。因此,我认为您需要重新安装。无需格式化分区,但可以选择其他分区来安装 GRUB。

相关内容