我迫切希望将 Windows 7 添加到 grub 中。我尝试过 sudo update-grub,运行过 sudo os-prober,但似乎无法将 Windows 添加到 grub 中。
有人可以解释一下如何手动将 Windows 7 添加到我的 grub 中吗?
答案1
- 打开终端并输入:
sudo nano /etc/grub.d/40_custom
- 添加以下行:
menuentry "Windows 7 (loader) (on /dev/sda1)" { insmod part_msdos insmod ntfs set root='(hd0,msdos1)' chainloader +1 }
通过适当修改计算机中 Windows 7 的位置。
- 跑步
sudo update-grub
笔记如果您不小心,这些操作可能会损坏您的计算机。
答案2
grub-customizer
对我有帮助。它自动检测了 Windows 7,我能够添加它并更改菜单中的位置和标题。
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
答案3
Ctrl在尝试进一步的操作之前,我建议您按+ Alt+进入终端T并输入以下内容:
sudo update-grub2
这将扫描您的系统中所有现有的操作系统,并将它们添加到 Grub 菜单中(参见注释¹)
接下来下载并运行启动修复
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
该程序应该自动启动,或者您可以从应用程序列表中打开它。
如果以上方法均不起作用,请参阅注释² 以手动将 Windows 条目添加到 GRUB 菜单。
注¹:
如果您在同一硬盘上安装了多个 Windows 系统,则启动时,您很可能只会在生成的 GRUB 菜单中看到一个 Windows 系统。这是因为该选项指的是位于硬盘的引导扇区和/或每个 Windows 分区开头的 Windows 引导加载程序。调用该选项时,它将运行 Windows 引导管理器,这将允许您选择其他 Windows 环境。
你应该明白启动管理器和一个引导加载程序。在大多数情况下,GRUB 和 Windows 启动管理器 (BOOTMGR) 都执行这两项任务。但是 Windows 启动管理器无法加载 Linux 环境,反之亦然,GRUB 实际上无法加载 Windows 环境。
因此如果你使用 GRUB 作为你的基本的启动管理器,并且您在启动时选择 Windows 环境,它将加载 BOOTMGR 作为引导加载程序对于您安装的任何 Windows 系统,将进入 BOOTMGR 屏幕,您可以从列表中选择 Windows 10 或 Windows 7。
类似地,如果您使用 BOOTMGR 作为主要 (使用bcdedit
),当您从菜单中选择 Linux 发行版时,它将不会直接启动到系统:它只会运行 GRUB(它应该驻留在根分区的开头而不是 HD 的引导扇区)并允许您从那里选择所需的系统。
注²:
如果以上方法都不起作用,你可以手动添加 Windows 条目。此解决方案在 grub2 菜单中提供了正确的条目以启动 Windows 10。
需要注意的是,不建议编辑 GRUB 菜单,因为它可能会破坏您的系统。但如果您需要这样做,请按照以下方法操作。
首先检查 Windows EFI 启动在哪个磁盘和分区上:
parted --list
现在找到分区的 UUID。例如:
blkid /dev/sda2
返回:
/dev/sda2: UUID="1AC3-9984" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="dda518e7-aa6d-4944-9a59-e459f0f7944e"
然后,您可以编辑/etc/grub.d/40_custom
grub 文件以添加可帮助您启动 Windows 系统的行
sudo gedit /etc/grub.d/40_custom
根据您的配置添加以下修改:
menuentry 'Windows 10 (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-1AC$
insmod part_gpt
insmod ntfs
insmod search_fs_uuid
insmod chain
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-barem$
else
search --no-floppy --fs-uuid --set=root 1AC3-9984
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
请注意,该条目配置为从第一个硬盘驱动器 hd0 或 ahci0 的第二个分区 gpt2 启动。如果您使用的是旧版,则将所有内容替换gpt
为msdos
现在你可以更新 grub 文件
upgrade-grub
重新启动系统即可看到GRUB 菜单
答案4
更好地利用引导修复
无论是从 Ubuntu 实时会话(在 Ubuntu 实时 CD 或实时 USB 上启动您的计算机,然后选择“尝试 Ubuntu”)还是从您已安装的 Ubuntu 会话(如果您可以访问它)
连接到互联网
打开一个新的终端,然后输入以下命令(每行后按 Enter):
sudo add-apt-repository ppa:yannubuntu / boot-repair
sudo apt-get 更新
sudo apt-get install -y boot-repair && boot-repair
建议修复
1. 从以下任一方式启动 Boot-Repair:
- Dash(屏幕左上角的 Ubuntu 徽标)
或者在终端中输入“boot-repair”
- 然后点击“建议修复”按钮。修复完成后,记下纸上显示的 URL(paste.ubuntu.com/XXXXX),然后重新启动并检查是否恢复了对操作系统的访问。
- 如果修复不成功,请通过电子邮件或论坛向帮助您的人指出 URL。