我有一个安装了 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 论坛,我终于把所有问题都理清了。
以下是步骤列表:
- 我使用 gparted 将 Windows 的 c 盘格式化为 ntfs。
- 将 BIOS 设置‘SATA 操作’从‘英特尔智能响应技术’更改为‘ATA’。
- 使用 Live CD 重新安装了 Windows 7。
- 在成功安装 Windows 后,grub 被覆盖,因此启动时没有启动菜单,而是直接启动 Windows 7。
- 我使用 ubuntu live CD 加载了 ubuntu。(没有安装,只是运行 ubuntu)。
在终端中运行以下命令:
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
- 此后我使用推荐的设置运行“启动修复”。
- 删除了我添加的多余行
/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 的启动菜单。