安装 GRUB 和 Ubuntu 后 Windows 7 不显示在启动菜单中

安装 GRUB 和 Ubuntu 后 Windows 7 不显示在启动菜单中

我有一个安装了 Windows 7 的系统。为了安装 Ubuntu 12.04 LTS,我安装了 GRUB。现在 Ubuntu 运行良好。但是成功安装 Ubuntu 后,系统启动时的 GRUB 启动菜单不显示 Windows 7。

以下是输出sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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
Disk identifier: 0x71c30ce5

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63       80324       40131   12  Compaq diagnostics
Partition 1 does not start on physical sector boundary.
/dev/sda2           81920    29044735    14481408    7  HPFS/NTFS/exFAT
/dev/sda3   *    29044736   522272767   246614016    7  HPFS/NTFS/exFAT
/dev/sda4       522274814   976764927   227245057    f  W95 Ext'd (LBA)
Partition 4 does not start on physical sector boundary.
/dev/sda5       522274816   651298815    64512000    7  HPFS/NTFS/exFAT
/dev/sda6       665636864   709464063    21913600    7  HPFS/NTFS/exFAT
/dev/sda7       808998912   976764927    83883008    7  HPFS/NTFS/exFAT
/dev/sda8       651300864   665634815     7166976   82  Linux swap / Solaris
/dev/sda9       709466112   808984575    49759232   83  Linux

Partition table entries are not in disk order
omitting empty partition (6)

Disk /dev/sdb: 32.0 GB, 32017047552 bytes
255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x71c30ccf

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048    16775167     8386560   84  OS/2 hidden C: drive
/dev/sdb2        16777214    62531583    22877185    5  Extended
/dev/sdb5        16777216    54396927    18809856   83  Linux

答案1

尝试使用update-grub重新映射可启动映像的命令,然后重新启动以查看您是否可以找到 Windows。

答案2

感谢所有用户和 askubuntu 论坛,我终于把所有问题都理清了。

以下是步骤列表:

  1. 我使用 gparted 将 Windows 的 c 盘格式化为 ntfs。
  2. 将 BIOS 设置‘SATA 操作’从‘英特尔智能响应技术’更改为‘ATA’。
  3. 使用 Live CD 重新安装了 Windows 7。
  4. 在成功安装 Windows 后,grub 被覆盖,因此启动时没有启动菜单,而是直接启动 Windows 7。
  5. 我使用 ubuntu live CD 加载了 ubuntu。(没有安装,只是运行 ubuntu)。
  6. 在终端中运行以下命令:

    sudo mount /dev/sda9 /mnt  # sda9 was the partition i had previously set for ubuntu
    
    sudo rm -rf /boot
    
    sudo ln -s /mnt/boot /boot
    
    sudo apt-get update && sudo apt-get install grub-pc
    
    sudo grub-setup /dev/sda
    
    sudo umount /boot
    
  7. 此后我使用推荐的设置运行“启动修复”。
  8. 删除了我添加的多余行/etc/grub.d/40_custom,然后执行update-grub

现在我有 ubuntu 和 windows 7 的启动菜单。

(我不确定,但我认为如果我首先在 BIOS 中更改 SATA 操作,我就可以避免重新安装 Windows 并仅进行启动修复。)

答案3

我遇到了同样的问题,我会尝试这个:我使用 gparted 将 Windows 的 c 盘格式化为 ntfs。将 BIOS 设置“SATA 操作”从“英特尔智能响应技术”更改为“ATA”。使用 live CD 重新安装 Windows 7。成功安装 Windows 后,grub 被覆盖,因此启动时没有启动菜单,Windows 7 直接启动。我使用 ubuntu live CD 加载了 ubuntu。(没有安装,只是运行 ubuntu)。

Ran following commands in terminal:

sudo mount /dev/sda9 /mnt # sda9 was the partition i had previously set for ubuntu

sudo rm -rf /boot

sudo ln -s /mnt/boot /boot

sudo apt-get update && sudo apt-get install grub-pc

sudo grub-setup /dev/sda

sudo umount /boot
After this i ran 'Boot Repair' with recommended settings.
Removed the extra lines i had added in /etc/grub.d/40_custom, and did update-grub.

现在我有 ubuntu 和 windows 7 的启动菜单。

相关内容