在外部硬盘上安装了 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 安装:
- 假设您在外部硬盘上放置了一个 EFI 分区,只需将整个内部 EFI 复制到外部磁盘的 EFI 分区即可。这样外部磁盘就可以使用 grub 启动,然后可以选择 Ubuntu 或 Windows。
- 将启动优先顺序改为首先启动外部硬盘,然后启动 Windows。当没有外部磁盘时,Windows 将启动。
甚至不要试图删除内部磁盘上的 /EFI/ubuntu,将其视为备份,无论如何它都不会运行。
答案3
似乎您已选择外部硬盘来安装引导程序 (Grub)。因此,我认为您需要重新安装。无需格式化分区,但可以选择其他分区来安装 GRUB。