架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7426|回复: 1

[windows] 轻松教你打造xp+linux+win7三系统教程

[复制链接]
发表于 2015-4-9 20:58:52 | 显示全部楼层 |阅读模式

轻松教你打造xp+linux+win7三系统教程
其实多系统启动,其最核心的问题,就是如何引导,所以经常会遇到装好了两个操作系统,却发现不能引导,或是重装某一个操作系统后,另外一个系统无法引导的情况
所以先来谈谈引导的问题
我们先假设所安装的操作系统都是windows系列的,比如win98 ,win xp ,win 7
那么,有一个原则就是,先安装最旧的系统,比如先装win98,再装xp,再装win7,
原因其实很简单,我们可以这样去想,微软开发win98的时候,xp的开发还没开始,所以win98的启动引导里肯定不支持xp ,而开发xp的时候,考虑到向前兼容的原则,其启动引导装置肯定是越来越先进,一定能支持前任,乃至前几任操作系统。
最后装入的win7操作系统,能引导前几任操作系统(理论上支持win98)

好,现在来把问题复杂化,我们引入其他平台下的操作系统(非微软开发),如linux操作系统(这里以centos发行版做简要说明)

xp,win7,linux 这三个操作系统,如何才能把他们安装到一台机子上呢

首先我们考虑  xp ,和win 7,当只有这两个时,我们按照先装旧的系统的原则,先装好xp,
然后再装win7, 这样启动后,通过win7的引导机制,我们就可以成功的引导这两个系统

现在我们要引入linux操作系统,这是另外的平台,首先有必要了解一下win7和linux操作系统的引导机制

win7的引导机制:
win7(包括vista),使用bootmgr(启动管理器)进行引导
装有win7的电脑开机的引导过程可以简单概括如下
开机加电----BIOS自检----读入主引导记录MBR------Bootmgr接管----BOOTMGR读取bcd文件(Boot Configuration Data “启动配置数据”)---加载内核--系统启动
所以可以看到,是bootmgr读取bcd文件来进行系统引导的

linux的引导机制:
linux有很多发行版本,为人熟知的有red hat, red flag ,等,这里以centos为例
装有centos的电脑开机后的引导过程可以简单概括如下
开机加电----BIOS自检----读入主引导记录MBR-----grub接管----grub读取配置文件menu.lst中数据-----加载内核--系统启动

可以看到二者的区别在于一个用bootmgr,一个用grub(较早的有用LILO的,不在讨论范围内),结果都是通过他们来加载系统核心,而bootmgr,grub一般都安装在MBR上(特殊情况后面讨论)



ok 假设我们装好了xp,和 win7,这样的话是采用win7的bootmgr 来引导系统,其引导菜单上会有选择,如:启动之前较早的windows版本和启动windows7的选项,这样我们可以通过选择不同选项启动相应的系统(注意这里bootmgr安装在硬盘的MBR上)


现在我们再此基础上安装centos,(若将其grub也安装在硬盘MBR上,这样会重写硬盘MBR,可以认为我们用grub替代了原来的bootmgr),grub应该能成功检测到xp,win7的存在,所以其引导菜单上会出现xp,win7,centos三个选项,供我们选择(理论上),至此三系统共存完毕。

我们得出的结论是先装xp,再装win7,最后装centos(linux)



--------------------------更复杂的情况------------------------

如果你现在已经晕乎了,那么不建议继续阅读。。
我遇到的就是更复杂的情况,因为我是先装xp,再装centos的,而且把centos的grub
装到了MBR上,这样的话如果我再装win7,bootmgr就会替代原先的grub(重写MBR),

而微软的bootmgr没有linux那么智能,更sb些,它只认自家兄弟,所以xp能认出来,centos却认不出来,解决办法呢?

这里有两种解决办法

一:先装xp,再装centos,没问题,但centos的grub一定不能装在MBR上(防止装win7 的时候被重写),可以挂载在“/”下面,然后继续装win7,bootmgr还是找不到centos,,进入win7,下载easybcd这个软件,打开easybcd,在add/remove entry里面,选择linux,Type选择grub,在Name添加上你想要的名字,随便写一个如centos,Driver选linux所在的分区。这里选择的分区要和刚才安装linux时grub安装的位置一致,。最后add entry保存好,view settings就可以看到两个选项了,一个是本来的win7,一个是刚刚建的选项。
最后重启,就ok了

二:但杯具的我把centos的grub装到了mbr上,再装win7的时候,mbr肯定会被重写掉,怎么办??答案很简单,备份!!!

1 ,先进入centos,打开终端、
输入dd if=/dev/sda 0f=/root/centos.mbd bs=512 count=1
这个命令是用来备份mbr的,这里我把它备份成centos.mbr这个文件




2 然后进入xp系统(一开始是xp+centos,最后装的win7),硬盘安装win7

3 win7安装好后,mbr被重写了,bootmgr重新占领了高地,但这个sb不认识centos, 只知道xp,于是我们只好强制让它认识!

进入win7,把先前备份好的centos.mbr拷贝到系统目录下,我这里是H 盘
以管理员模式运行cmd
以此运行以下命令
bcdedit /create /d "centos 5.4" /application bootsector

  命令结果应该会返回一个GUID,后面的命令用到这个GUID

  运行以下命令设置Linux引导扇区备份所在的分区:

  bcdedit /set {GUID} device partition=H:    (我这里是H盘)

  然后指定引导扇区备份的路径:

  bcdedit /set {GUID} path /centos.mbr


  命令完成之后,重启,此时应该可以看到启动选项里多了Linux。



重启,搞定!!!
引导菜单里出现了三个选项
1: 以前版本的windows系统
2: 启动windows7系统
3: centos 5.4
选择相应的菜单就可以进入了


我们可以这样比喻:
这篇文章的核心可以用下面的话概括为从前有一个大家族,里面有三户人家,一户叫win7,一户叫linux,还有一户叫xp, 他们三家都是住在一个叫硬盘的地方,win7家有一个儿子叫bootmgr,linux家有一个儿子叫grub,xp家的儿子最2b,从来都是跟着他们混的,没有发言权。
家族需要有人管理,于是三个儿子争夺管理权,xp家的儿子最没用,只知道跟着其他二人混,先排除,
bootmgr和grub都是有些本事的人,都有资格管理整个家族
家族里有一块神秘的地方叫MBR,相传谁发现占领了这块地方,就有掌控整个家族的权利
假设bootmgr掌控了这个地方,但bootmgr这个人是个自大狂,有了管理的权利后就不承认linux家的地位了,只承认和自己血缘更亲的xp家
再假设grub掌控了这个地方,grub这个人就好很多了,当上管理员后,还是照样承认三家的地位,承认三家都是硬盘不可分割的整体
我们想让这个家族得到很好的管理,于是答案很简单

一:让linux家的儿子grub 占领MBR,掌控整个家族(所以先装xp,再win7,最后linux)
二:我们也可以让win7家的儿子bootmgr占领MBR,不过考虑到其自大的本性,我们要强制的给他下命令,承认linux家的地位(所以通过easybcd这个妞给他下命令,谁让bootmgr一直喜欢easybcd呢




上一篇:怎样打开mysql的慢查询日志记录
下一篇:数据库设计原则(转载)十四个技巧
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-11-21 20:40:36 | 显示全部楼层
好好学习学习啊~
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 19:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表