本文总结了装完Ubuntu后,进不了Win7系统的两种有效解决方法。症状描述:原系统是Wind7,通过EasyBCD加载ubuntu-12.04.5-desktop-amd64.iso,安装了Ubuntu。装完后重启时能看到一条可选项“Windows 7 (loader) (on /dev/sda1)”,如下图:
但是选它(上图中最后一个条目)Enter以后出来“Install Ubuntu 12.04.5 LTS”,这是装Ubuntu之前在Win7里用EasyBCD编辑(Add/remove a Entry--->NeoGRUB--->Install---->Configure)弹出的menu.lst文档时设置的title。如果继续Enter一下,就会进入安装Ubuntu的黑屏白字安装窗口......
失败的尝试:
1) 进入Ubuntu,找到之前放在Win7的C盘根目录的.iso,vmlinuz.efi和initrd.lz;重启试图进Win7,问题依旧,无明显变化。
2) 手动修改 /boot/grub/grub.cfg文件中的红色部分为如下内容:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 000B1EBC0002A699
chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
替换,保存,退出。问题依旧,无明显变化。
各种Google后,测试通过如下2种有效方法:
方法一: 执行命令,自动修改
arac@test:~$sudo grub-install /dev/sda
[sudo] password for ltu:
Installation finished. No error reported.
arac@test:~$sudo chmod -x /etc/grub.d/30_os-prober
arac@test:~$sudo gedit /etc/grub.d/40_custom
在打开的40_custom文件中输入如下一段内容:
menuentry 'Win7' {
set root=(hd0,1); 注意:这个地方1前面不能有空格,也就是说如果这样(hd0, 1),是进不了Win7的,会报“No such disk”。
ntldr /bootmgr
boot
}
然后执行:
arac@test:~$sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /memtest86+.bin
done
arac@test:~$
重启,可以看到一条Win7启动条目。如下:
选择“Win7”,Enter,正常登录到之前Win7。附上一张我漂亮的桌面:
方法二:手动编辑
受方法一启发,更直接的方式就是直接改一下grub.cfg文件则可。Ctrl+alt+T打开终端。
arac@test:~$sudo gedit /boot/grub/grub.cfg
再打开的grub.cfg文件尾部添加一段:
menuentry 'Win7' {
set root=(hd0,1);
ntldr /bootmgr
boot
}
保存,退出。重启。也可以看到Win7启动条目了。但这种做法不会像方法一那样更新了grub.cfg文件,删除掉了那条旧的“Windows 7 (loader) (on /dev/sda1)条目”。可以直接在grub.cfg文件中删除那一段则可。
参考:
http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=333739