Windows 7引导Ubuntu 13.10 双系统安装

    之前安装了ubuntu12.04,结果发现这个系统问题百出,不久就弃之不用,过了一段时间的找实习找工作的折腾时间后,安稳下来后突然有想起电脑上的这个系统,于是决定重新装他。按照上次装12.04的步骤安装13.10,却发现出了一些问题,于是写下这篇文章记录下。

准备工具:

1、当然,就在这个文章的主人公 ubuntu13.10系统,官网下载
2、用于系统设置与管理的EasyBCD,当然这个软件不是开源的,但是网上有很多破解的可以下载,自行百度;
     同时,我在找ubuntu系统的时候也发现了ubuntu的 一个新的分支:ubuntukylin(人们也称“麒麟”,注意此麒麟并非彼麒麟,这不是那个使用开源 FreeBSD系统内核却违背开源协议,被冠以“中国独立研发成功”和“拥有完全自主版权的内核”的“造假 银河麒麟  )。
   好奇心害死猫,于是乎我就又在纠结到底要装ubuntu还是号本土化的ubuntukylin呢?听他的呼声那么大,有点想试下的冲动,可有不想装到硬盘上后,后悔了又要重装。最后我在转在了虚拟机上过把瘾,结果发现其实ubuntukylin不外乎就是在ubuntu13.10 外壳加上“中文输入法、农历日历、天气、Dash中在线音乐搜索”而已。于是最后放弃了。

安装步骤:

1、分配磁盘空间:
    使用windows自带的磁盘管理工具分出一部分磁盘给ubuntu使用,打开磁盘管理工具的方法是: 右键 ”我的电脑->管理->存储->磁盘管理“然后选择一个分区进行切割,右键选择“压缩卷” 然后在弹出的窗口里的“输入压缩空间量”输入压缩后的磁盘大小,然后一直下一步直到结束。 ubuntu一般给20G以上就是够的了。
2、刻录光盘:
    下载ubuntu系统,使用windows自带的光盘刻录机刻录系统盘,刻录方法是:插入光盘,右键“系统盘->打开方式->windows光盘映像刻录机”,然后选择刻录的光盘名(如果有多个光驱的话,没有就是默认),开始刻录。当然也可以选择其他刻录光盘软件,只要把系统刻进光盘就ok。
3、修改Boot启动模式:
    重启电脑,然后在电脑进入BIOS读取主引导记录(MBR)之前 按esc键,设置开机启动模式为光盘启动。这个不同电脑设置的方式不同,可以自行百度。如果慢了一步已经到了系统读取MBR的时候,可以按快捷键 CTRL+ALT+DEL重启,而没有必要等到系统完全启动在重启
4、安装ubuntu系统:
    光盘启动后,进入ubuntu光盘系统,这个系统就是ubuntu13.10,在桌面上有一个安装到系统的图标,双击图标进行安装。安装过程比较简单,这里主要说下几点注意的事情:
第一 安装时候 不要联网,因为联网的话ubuntu会自动下载一些语言包,这个很费时间的,我是等了三四个小时。如果万一联网了也不怕,因为安装的时候按安装进度条那个箭头,会出现一个安装详情,那里还有一个skip按钮,可以跳过;
第二,安装类型中,建议选择其他选项,可以重新分区。当然,也可以选择其他选项,比如覆盖windows,看自己的情况而定;
第三,关于分区,分区的作用就是为了安全和方便管理, 首先说下各个分区的作用:
/  根分区,这个是必要的;
swap 是交换文件系统(一般为物理内存的1.5到2倍,必须独立分区,物理内存大于8G可以不设这个交换分区);
/boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件,这个分区是必要的;
/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户;
/usr分区,是系统安装软件的地方;
/var/log分区,是系统日志记录分区;
/tmp分区,用来存放临时文件;
/bin分区,存放标准系统实用程序;
/dev分区,存放设备文件;
/opt分区,存放可选的安装的软件;
/sbin分区,存放标准系统管理文件;
参考
我这次分了四个分区,/根分区给了10个G(主分区),swap分区给了1G(逻辑分区), /boot分区给了200M (逻辑分区) ,/home分区也是给10个G (逻辑分区)
注意:分swap分区的时候是在”用于“选项卡中选择,其他的在”挂载点“中选择。
还有一项“安装启动引导器的设备”,默认就是sda,如果选择默认,则是ubuntu引导windows7,到时候卸载ubuntu时,可能会麻烦些,如果想用windows7引导ubuntu,那就选择/boot所在的盘符,之后还要在windows下安装引导类的软件,才能启动ubuntu,所以这里我选择了/boot所在的盘符。
5、添加引导启动项:
    安装完ubuntu后就弹出光盘自动关机了,这个时候重新开机进入的还是windows7,因为还没有添加引导项。进入到windows7系统,安装EasyBCD软件来添加开机引导项,在添加前先备份下当前的引导菜单。运行EasyBCD,然后选择”BCD备份/修复->选择备份路径->备份BootLoader“,其实安装完EasyBCD后它会自动帮你备份一次BCD,只不过你不知道在哪里,所以在此备份下也不麻烦。接着选择”添加新条目->Linux/BSD->类型选择(GRUB(Legacy))->名称->驱动器(这个就是刚刚安装的/boot目录)->添加“。最后到编辑引导菜单上修改引导菜单,比如默认启动,倒计时,排序等等。
 
Windows 7引导Ubuntu 13.10 双系统安装_第1张图片
最后,重新启动电脑,你就会发现刚刚添加的启动项,选择就能够进入ubuntu。但是这个方法在ubuntu12.04版的时候是完全没有问题的,但是ubuntu13.10却除了问题,当你选择刚刚添加的启动项准备进入系统的时候却发现系统又回到了windows的默认引导界面。于是我又回到windows系统中,查看了我的设置,没有错误啊,在高级设置中重新修改了一些参数,结果还是进不去ubuntu系统,郁闷了。
 
Windows 7引导Ubuntu 13.10 双系统安装_第2张图片

 
    在网上找了挺久的资料,看到网上很多人安装ubuntu13.10都是先使用easyBCD添加NeoGrub,路径指向下载的ubuntu镜像文件和从该镜像文件中 解压出来的两个vmlinuz和 initrd.lz文件。安装过程结束后还要删除添加的 NeoGrub引导项。
    我觉得出现这个问题应该是ubuntu12.04和ubuntu13.10引导的方式发生了改变,于是顺着这个思路我一直找下去,想找到解决的办法,因为我都已经装好了,难道还重装不成?当然不用,只要是问题出现了,还是能够找到解决的办法的,也许还不止一个,也许能够获得很好的解决办法。
   果然是 ubuntu12.04和ubuntu13.10使用了两个不同的启动管理工具。 ubuntu12.04使用的是 GRUB,而 ubuntu12.04之后的版本 已经是GRUB2了。GRUB2和 GRUB最重要的区别就是,GRUB存放系统启动信息的文件为/boot/grub/menu.lst,而GRUB2则为/boot/grub /grub.cfg。
http://forum.ubuntu.org.cn/viewtopic.php?t=376981
 
   解决办法:
1)使用Boot Repair修复引导项:
     之前修复ubuntu的引导项问题都是要使用命令行的方式,但是自从有了BootRepair之后,就告别了命令行的方式。Boot Repair是一个linux下的软件,体积很小。
    插入ubuntu13.10系统光盘(最好和原来系统版本一样,当然,我们刚刚装完系统,这个肯定的没有问题的),然后重启电脑,修改电脑的Boot启动模式为光盘启动。然后进入ubuntu光盘系统中,这次需要联网,打开终端,输入:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    回车后,终端界面会有提示信息,还是按下回车键,之后界面会有很多信息在界面上滚动,等到命令运行完毕,   如果没有联网的话这个命令会报错。接着再次输入:
sudo apt-get install -y boot-repair && boot-repair
    回车后就会出现Boot Repair的软件界面了,它检测了一遍磁盘,然后出现一个只有两个选项的界面,点击上面的“recommended repair”按钮。
Windows 7引导Ubuntu 13.10 双系统安装_第3张图片
 
 
    过了一段时间后,他会弹出一个对话框,给出三条命令,要你在一个新的终端上运行,他们是:
sudo chroot "/mmt/boot-sav/sad" dpkg-configure-a
sudo chroot "/mmt/boot-sav/sad" apt-get install -fy
sudo chroot "/mmt/boot-sav/sad"  apt-get -y -force -yes grub* shim -signed linux -signed*
    这三条命令都可以直接复制就可以了,右键有复制的选项。
    运行一段时间后有弹出一个窗口要你输入另一条命令:
sudo chroot "/mmt/boot-sav/sad" apt-get install -y -force -pc linux
    这个命令运行完了之后,就会弹出一个窗口,提示你通过使用atb,空格,回车三个键选择安装grub的磁盘目录。然后确定后就完成安装,完成后又弹出一个窗口,给你一个链接地址和一个gmail邮箱,通过那个链接地址你可以看到这次操作的全部日志文件,里面有你磁盘的信息。
    重启电脑,发现只有ubuntu的启动项,这个就要涉及到修改grub配置文件了。这里又有两个修改的办法:
方法一:这是最简单的方法:进入ubuntu13.10后,打开终端,在次运行一个命令:
sudo mv /etc/grub.d/30_os-prober /etc/grub.d/06_os-prober
sudo update-grub
方法二:比较麻烦, 终端输入sudo gedit /boot/grub/grub.cfg,打开这个文件,开头几行注释如下:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
这里说得很清楚:不要编辑这个文件,这个文件是根据/etc/grub.d的模板和/etc/default/grub的设置自动生成的,所以网上 流行的编辑这个文件来达到修改启动顺序的方法是不正确的,至少是不合理的,因为一旦更新内核什么的话,这个文件又会自动生成,之前的更新就会失效。
那既然不能修改这个文件,那就看看/etc/grub.d和/etc/default/grub好了,前者是个文件夹,暂时不管,后者是个文件,其内容如下(删去了一些没太大帮助的注释):
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DEFAULT代表的就是启动项的顺序,从数字0开始,依次代表如下启动项(这是在我的电脑上,不同的ubuntu版本和windows系统可能会有一些不同):
Ubuntu, with Linux 2.6.35-28-generic
Ubuntu, with Linux 2.6.35-28-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda1)
windows排第四位(注意,顺序是从0开始计的),所以,把GRUB_DEFAULT的值修改为4,然后别忘了运行命令:
sudo update-grub
好了,重启电脑,默认启动的系统就换到windows了。
参考:
B oot Repair http://www.rjno1.com/infor/diy/1362-boot-repair
修改启动顺序: http://blog.csdn.net/u012733519/article/details/14589791

    不过这种方法我很不喜欢,因为进入grub的引导系统后,如果你选择windows,他还是会进入windows的默认引导界面,并且个人觉得grub的那个引导界面做的不是很好看,个人不是很喜欢。还有,如果使用grub引导的话,如果ubuntu坏了或者卸掉ubuntu,那么会导致windows也进不去,需要使用pe修改windows的mbr,这个也是很烦人的事情。我希望能够找到一种windows引导ubuntu的方法,卸掉ubuntu很简单,只要格式化装ubuntu的系统盘,然后修改下windows的引导项就搞定了,就像ubuntu12.04那样,于是我继续折腾着。


2) windows 使用easyBCD添加ubuntu引导:
    因为之前使用 Boot Repair修改了windows的mbr,修改重新写入windows的mbr,才能删掉grub。 打开easyBCD,选择“BCD部署->在MBR中安装windows Vista/7的bootloader->编写MBR”,ok。
Windows 7引导Ubuntu 13.10 双系统安装_第4张图片
 
    接着,选择“添加新条目->NeoGrub->安装->配置”,接着打开了一个记事本文档,里面全部都是注释,我们在注释下面加上下面的几行代码:
ubuntu12.10之后的版本:
title Ubuntu/Linux 12.10
find --set-root /boot/grub/i386-pc/core.img
kernel /boot/grub/i386-pc/core.img
boot

#如果 /boot 是单独分区的,使用下面这样的:
title ubuntu/Linux 12.10 (/boot on single partitionas)
find --set-root /grub/i386-pc/core.img
kernel /grub/i386-pc/core.img
boot
    这个时候在回到”编辑引导菜单“下,发现多了一个”NeoGrub引导加载器 “项目,这个时候可以修改该项目的名字,然后重启电脑就会发现首先出现的是windows的默认引导界面,选择我们添加的这个引导项目就会进入ubuntu的grub引导界面,这个时候就是我想要的效果了。
    其实也可以通过”添加新条目->Linux/BSD->GRUB2->名称->自动定位和加载“来添加引导项目。
Windows 7引导Ubuntu 13.10 双系统安装_第5张图片

  但是很奇怪的一点就是我之前在第5步添加引导启动项的时候就有试过这个类型的启动项,但是忘记了那个时候有没有试过设置驱动器为” 自动定位和加载 “,还是一直设置成”分区7“(即ubuntu的/boot分区),但是那个时候明显是不行,不知道会不会是受到我” 使用Boot Repair修复引导项 “这一步修复ubuntu的grub启动的影响,这个无从考究。
参考

至此,我的windows7和ubuntu13.10终于实现完美共存了,花了我一天的时间,不过还是挺有收获的。

你可能感兴趣的:(疑难问题解答)