Grub 不显示 Windows 10

Grub 不显示 Windows 10

我已经查看了几十个答案。我这里遇到了一个不同的问题。我安装了 Windows 10。我最近用 Ubuntu 16.04 双启动了我的 lenovo ideapad 310。但从那时起,我的 grub 菜单就没有显示 Windows 10。在安装 Ubuntu 之前,我尝试进入 BIOS,但无法做到。联想社区论坛建议我重新启动(而不是关闭)Windows,然后在重新启动时打开 BIOS。它成功了,我更改了启动顺序并安装了 Ubuntu。

现在我想提几点

  • 两种操作系统均在传统支持模式下安装。
  • 我可以在 ubuntu 中查看和安装 Windows 分区。
  • 我已经使用过启动修复但是没有效果。

以下是一些命令的输出

sudo update-grub

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-77-generic
Found initrd image: /boot/initrd.img-4.4.0-77-generic
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
Found FreeDOS on /dev/sda1
done

sudo fdisk -l

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xd9fa2484

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *          2048    2050047    2048000  1000M  b W95 FAT32
/dev/sda2          2052094  929521663  927469570 442.3G  f W95 Ext'd (LBA)
/dev/sda3        929521664 1951702742 1022181079 487.4G  7 HPFS/NTFS/exFAT
/dev/sda4       1951703040 1953519615    1816576   887M 27 Hidden NTFS WinRE
/dev/sda5          2052096   75505220   73453125    35G 83 Linux
/dev/sda6         75507712  179953663  104445952  49.8G 83 Linux
/dev/sda7        179955712  188342271    8386560     4G 82 Linux swap / Solaris
/dev/sda8        188344320  929521663  741177344 353.4G  7 HPFS/NTFS/exFAT

Partition 2 does not start on physical sector boundary.
Partition table entries are not in disk order.

/dev/sda5我的 ubuntu 根目录是

/dev/sda6这是我在 ubuntu 的家

/dev/sda8是额外的空间

/dev/sda1我猜是 FreeDos,但我不确定。

以下是由我生成的启动信息摘要boot-repair

启动信息摘要

答案1

看起来 grub 正在将处于打开状态的 Windows 引导加载程序识别/dev/sda1为 FreeDOS。您实际安装的 Windows 处于打开状态/dev/sda3,并且/dev/sda1您将只拥有 Windows 自己的引导加载程序。我不知道为什么它会被检测为 FreeDOS,但这显然是正在发生的事情。

因此,只需启动 FreeDOS,您就应该启动 Windows。如果您想更改名称,请编辑/boot/grub/grub/cfg,找到以 FreeDOS 开头并提及 FreeDOS 的行menuentry,然后将该行更改为 Windows。它应该看起来像这样(不完全像这样,这只是一个例子,细节会有所不同;只需更改引号内的文本):

menuentry "Windows 7 BIOS MBR" {
     insmod part_msdos
     insmod chain
     drivemap hd0 hd1
     chainloader (hd1,msdos2)+1
}

答案2

是的,实际上 dev/sda1 是您之前安装的 Windows,但系统将其识别为 Free dos。因此在 Ubuntu 中只需输入 sudo os-prober 即可确认。之后只需输入 sudo update-grub 并重新启动 PC。然后从 free dos 加载它。

相关内容