在Windows电脑上将Ubuntu安装到移动硬盘后,即使未插入移动硬盘仍能在启动菜单看到Ubuntu选项,GRUB引导程序被安装到了内置硬盘的EFI分区
- 安装时的默认行为:Ubuntu安装程序(如Ubiquity)可能自动将GRUB引导程序写入到电脑内置硬盘的EFI系统分区(ESP),而非移动硬盘的ESP。
- 结果:即使移动硬盘未连接,内置硬盘的ESP中仍存有Ubuntu的引导项,导致启动菜单显示该选项。但若尝试启动,会因为找不到移动硬盘的系统文件而失败。
将 GRUB 引导程序迁移到移动硬盘,并删除内置硬盘的 Ubuntu 引导项。
使用 gparted调整分区
留出500MB左右空间,FAT32 格式的分区,并设置 boot/esp 标志,分区自定义。
挂载移动硬盘的 EFI 分区
假设新创建的 EFI 分区是 /dev/sdb3:
sudo mkdir -p /mnt/esp
sudo mount /dev/sdb3 /mnt/esp
重新安装 GRUB 到移动硬盘
sudo grub-install --target=x86_64-efi --efi-directory=/mnt/esp --bootloader-id=ubuntu --removable
- --removable 选项确保 GRUB 可以在不同电脑上启动(适用于移动硬盘)。
更新 GRUB 配置
sudo update-grub
卸载并检查
sudo umount /mnt/esp
lsblk # 确认挂载点已移除
删除内置硬盘的 Ubuntu 引导项
确认GRUB安装位置
首先,检查GRUB是否真的被安装到了内置硬盘的EFI分区(ESP):
打开终端(Ctrl+Alt+T),运行:
sudo fdisk -l
- 找到你的内置硬盘(通常是 /dev/nvme0n1 或 /dev/sda)和移动硬盘(如 /dev/sdb)。
- 确认它们的EFI分区(通常是 FAT32 格式,大小约100MB~500MB)。
查看GRUB是否安装在内置硬盘:
sudo grub-probe -t device /boot/efi
- 如果返回的是内置硬盘(如 /dev/nvme0n1p1),说明GRUB被错误安装到了内置硬盘。
在 Ubuntu 中删除
挂载内置硬盘的 EFI 分区:
sudo mount /dev/nvme0n1p1 /mnt/esp
删除 Ubuntu 引导文件:
sudo rm -rf /mnt/esp/EFI/ubuntu
卸载:
sudo umount /mnt/esp
调整 BIOS/UEFI 启动顺序
-
重启进入 BIOS(通常是 F2、Del 或 Esc)。
-
找到 Boot Options,确保:
- 移动硬盘的 Ubuntu 在列表中。
- 内置硬盘的 Ubuntu 残留项 已被移除(如果没有自动消失,手动删除)。
-
设置 移动硬盘为第一启动项(可选)。
验证
- 插入移动硬盘 → 启动时按 F12,应该能看到 Ubuntu(移动硬盘)。
- 不插移动硬盘 → Ubuntu 选项应消失,直接进入 Windows。