关于win7和ubuntu双系统启动项的问题

时间:2021-04-08 16:47:40

    这几天,捣鼓了很多次,终于成功的将win7+ubuntu13.10双系统搞定了,我看到好多人都有双系统启动的问题,在此我分享一下我的心得。在装双系统期间颇为坎坷,电脑被重装了N次,废话少说,直接进入正题。  

    我安装双系统的顺序是先安装win7然后安装的ubuntu13.10, 具体的安装过程这里不再赘述, 网上有各种教程,看官可以自己搜索,我直接从安装ubuntu成功之后说起。

    在安装玩ubuntu之后,系统采用grub引导,当电脑从硬盘启动时BIOS 通常转向硬盘的第一个扇区即主引导记录(MBR),然后基本引导装载程序装载第二引导装载程序即此时的grub,然后根据grub让用户选择装在的操作系统(如果有多个操作系统的话)。

    ubuntu13.10采用的grub 2, 在grub 2的配置里面配置了系统的启动项。在我安装完ubuntu之后原来的win7的启动项就不见了,启动之后只能看见grub的引导,虽然里面有一个win7的引导,但是选中之后会出现提示“Ctrl +Alt +Del  to restart”,win7不能正常启动,一开始网上搜索了很多的方法,最有效的一个就是用系统的安装光盘在命令行模式下使用 bootrec /mbrfix 命令来修复win7的启动,这样修复有一点小小的问题,我们会发现这个时候ubuntu的启动项又不见了,按照网上的教程我们进入win7之后可以下载EasyBCD 来增加一个ubuntu的启动项,这很简单,只不过如果这样做的话在启动的时候会先先选择一次win7或者ubuntu,如果选择了ubuntu的启动项,之后还会有一个选择项选择修复MBR之前出现的启动项包括一个win7的启动项,而且这边的win7的启动项依然是没有用的,选择了之后依然会出现“Ctrl +Alt +Del  to restart”。这样的话如果不觉得烦的话也无所谓,只不过是开机的时候多选择一次。如此修复MBR的另一个比较大的问题是每次我的ubuntu有更新或者我使用过sudo update-grub之后,win7的启动项就又不见了,所以每次更新完我都要用光盘来修复MBR ,非常蛋疼!!后来我发现了网上还有一种比较有效的方法,就是自己配置grub 2,由于第一次接触grub,不怎么理解,看了好多资料,意外的发现了一个答案,就是在grub 2中找到关于win7的那一段,在我的grub里面是这样一段:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-000290E40008E8A1' {
insmod ldm
insmod ntfs
set root='ldm/96052316-3faa-11e3-a105-b71f8290edda/Volume1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0 --hint='ldm/96052316-3faa-11e3-a105-b71f8290edda/Volume1' 000290E40008E8A1
else
search --no-floppy --fs-uuid --set=root 000290E40008E8A1
fi
chainloader +1
}

不怎么理解他这一段,不知道有没有大神能帮我解释一下,但是我知道他这段肯定是有问题的^-^。我的方法是把这一段换成下面的代码:

menuentry "Windows 7" --class windows {
insmod part_msdos
insmod ntfs
if search -s -f /bootmgr ; then
ntldr /bootmgr
else
search -s -f /ntldr
ntldr /ntldr
fi
}
修改grub的命令是:
sudo gedit /boot/grub/grub.cfg
建议在修改之前备份一下原先的grub:
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
修改完之后保存一下,重启系统,这个时候你会发现引导还是grub的引导,但是这个时候win7的引导项已经是可以用的了,而且不会出现上面那种会要选择两次的情况。至此,工作已经完成,我们已经可以成功的启动win7和ubuntu了。 但是要注意的是修改grub之后千万不要update-grub,不然的grub又会变成一开的样子,win7的启动项就又没用了。
    文中如有疏漏之处还望各位看管指出,小弟菜鸟一只,没事喜欢瞎捣鼓,也许对有些东西理解有错误,还望不吝赐教。

可参见http://blog.csdn.net/zyings/article/details/15027553