![GRUB 破坏了我的 Windows 启动,如何修复?](https://linux22.com/image/220704/GRUB%20%E7%A0%B4%E5%9D%8F%E4%BA%86%E6%88%91%E7%9A%84%20Windows%20%E5%90%AF%E5%8A%A8%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9F.png)
我有一台运行 Windows 10 的笔记本电脑,运行得很好。我使用 Ubuntu 安装程序尝试安装双引导系统。当它问我是否要让它在引导记录中安装 grub 时,我尖锐地说不。
不管怎样它还是做到了。下次启动时,grub 出现,但没有明显的方式启动到 Windows。一个朋友不住在附近,所以我不能一直问他,研究了这个问题一段时间,想出了一个hackish方法:
- 在启动菜单中,选择“启动 EFI shell”
- 有类型:
fs2:\efi\microsoft\boot\bootmgfw.efi
我不会说那种语言,我不明白该文件系统参考如何转换为常规 Linux 或常规 Windows。但希望这里有人这样做吗?特别是可以配置 grub 来做到这一点吗?
并且,有谁知道如何在不破坏 Windows 的情况下更正确地安装双启动?
答案1
您可以采取以下措施来解决问题:(
先检查第三种方法,这只可能解决问题)
尝试手动将菜单项添加到 grub 菜单:-
nano /boot/grub/custom.cfg
= 使用文本编辑器打开 grub-config 文件
(sudo apt-get install nano
如果您尚未安装)。if [ "${grub_platform}" == "efi" ]; then menuentry "Microsoft Windows 10 UEFI/GPT" { insmod part_gpt insmod fat insmod chain search --no-floppy --fs-uuid --set=root $hints_string $fs_uuid chainloader /EFI/Microsoft/Boot/bootmgfw.efi } fi
在文件末尾添加(如果 Windows 安装为 UEFI 模式/GPT 驱动器)
尝试更新 grub 菜单:
sudo os-prober
= 此命令将检查其他已安装的操作系统。检查输出中是否列出了 Windows 10。sudo update-grub
或sudo update-grub2
(如果您有较新的 Ubuntu 版本,则后者是首选)= 此命令将使用上一个命令找到的操作系统启动选项的菜单项来更新 grub 菜单reboot
= 重新启动系统并检查其是否正常工作。
默认情况下,Ubuntu 22.04 (grub 2.06) 中禁用 os-prober。也许这就是导致问题的原因,因此您需要执行以下操作才能启用它(来源):
nano /etc/default/grub
= 使用文本编辑器打开 grub 文件
(sudo apt-get install nano
如果您没有安装)- 在文档末尾添加行:
GRUB_DISABLE_OS_PROBER=false
,或取消注释该行(如果存在) - 按 Ctrl+O,然后按 Enter 键保存更改,然后按 Ctrl+X 退出文件。使用 更新 grub 菜单
sudo update-grub2
。
答案2
GRUB 的安装不会破坏 Windows。事实上,情况通常是相反的——Windows 10 更新擦除了 Linux 引导加载程序。
如果 GRUB 没有显示您的 Windows 分区,您可以尝试启动修复盘修复 GRUB。这是一个 ISO,您必须将其刻录到可启动设备中,然后从那里启动您的系统。
之后,如果它仍然只显示启动 Linux 的选项,您可以尝试运行(从您的 Ubuntu 安装):
os-prober
作为信息,我前段时间在 Debian 上尝试过这些,它们运行得很好。在 Ubuntu 上,您可能还需要关闭 GRUB_DISABLE_OS_PROBER在 GRUB 选项中。