如何手动将 Windows 7 添加到 grub 列表?

如何手动将 Windows 7 添加到 grub 列表?

我迫切希望将 Windows 7 添加到 grub 中。我尝试过 sudo update-grub,运行过 sudo os-prober,但似乎无法将 Windows 添加到 grub 中。

有人可以解释一下如何手动将 Windows 7 添加到我的 grub 中吗?

答案1

  1. 打开终端并输入:

sudo nano /etc/grub.d/40_custom

  1. 添加以下行:
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}

通过适当修改计算机中 Windows 7 的位置。

  1. 跑步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_customgrub 文件以添加可帮助您启动 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 启动。如果您使用的是旧版,则将所有内容替换gptmsdos

现在你可以更新 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”

    1. 然后点击“建议修复”按钮。修复完成后,记下纸上显示的 URL(paste.ubuntu.com/XXXXX),然后重新启动并检查是否恢复了对操作系统的访问。
    2. 如果修复不成功,请通过电子邮件或论坛向帮助您的人指出 URL。

相关内容