现在的位置: 首页 > 综合 > 正文

01_多操作系统课题研究[2011-01-21]

2013年12月06日 ⁄ 综合 ⁄ 共 23618字 ⁄ 字号 评论关闭

 

多系统安装   -小钱版

这些天,由于个人需要,需要用到多系统,于是,我在探究系统的安装,在想,如何能实现多系统的安装呢?其实,每一个系统的安装并不难,多系统安装的难度就在于多系统启动项的生成,如何能让多个系统存在且能成功地引导。我们知道,一个硬盘中主分区只能设置三个,能通过什么样的方法让它们同时激活并且用上一个逻辑分区启动?这就是我最近探讨的问题。

这些天来,在网上,书上,找了一些资料,提出了一些方案,以下是我的探究过程,与大家分享分享。

 

(一)准备阶段

(1) 以下是我准备的三个系统:

① Windows 7 (新电脑公司 Ghost Win7 x64 纯净软件选择Y1.1)

现在Windows 7 已经差不多普及了,所以,为了赶上这个时代,为了让某些软件可以用,为了让自己的计算机性能可以充分发挥,我就先装个Windows 7玩一下,熟悉一下。安装版的没有去找,一上网就看见了一个Ghost版的,算了,直接用Ghost版装吧。

② Windows Xp(Ghost XP SP3 系统之家2011贺岁纯净版 v1.0)

Xp是多年的元老了,不是所有的软件都能完美地在Windows 7上运行,而个人又习惯了用XP多年了,现在不想这么快就把XP删掉,还是保留使用吧,再说,可以用来做测试软件使用。

③ Cent OS V5.3 (Linux)

    装这个系统是我研究装多系统的最根本原因,我想学习Linux操作系统,又因为教材上用的了Cent OS 5.3 所以我就用这个版本了,现在Cent OS 好像出到5.5吧。

 

(2)以下是收集到的光盘工具,U盘工具:

    之前还找到了一大堆,后来经过试过测试后,觉得下面的工具不错,于是推介给大家。

①    迷你U盘系统 Pocket OS v09.10.30

这软件挺好用,在我的U盘上用了一年了,基本上能支持所有的机型,在同学的新机上也能用,里面集成了PE和DOS工具集,另外,这软件可以直接安装,研究发现,它安装的原理是在你的U盘上再划分一个分区出来,然后将其隐藏,这样就可以达到防止误删还有不影响U盘的正确使用的目的。

②    UltraISO_Premium_V9.36

    这软件无疑是刻录的好软件,用了两年左右了,在此推介给大家。

还有就是可以用虚拟光驱,最后就是这个软件还可以制作和这个主题有关的USB引导盘。

③    完美者U盘维护系统V10.2

经过测试,里面的工具挺全的,日常用的那些基本上都有了,PE, Diskgen , Ghost, Spfdisk……

不过有一个缺点,它是一个镜像,没有刚刚提到的第一个好用,不过还是可以根据第一个的方法用刚刚提到的UltralISO制作出来。具体方法这里就不介绍了,大家自行去探究一下吧!

④    超级系统维护光盘 2010统一会员新春版

一般系统安装盘上都已经集成了各种工具,但是为什么还要多此一举用这个光盘呢?呃~这个只是个人爱好,用以收藏,不过如果大家出去帮人装机的时候带上这个挺不错的,因为里面集成了各种驱动 ,不过上网去下载,还有一点就是能够光驱引导,也是全部常用工具齐全。

⑤   MaxDOS

这个软件我下载了两个版本,一个是 V7.1的光盘版,一个是V8.0的硬盘版,开始用的时候好像是上一年,一直用到现在,主要打算用来装完刚刚提到的第四个系统后装上去,以后维护机子就不用用光盘这么麻烦。里面的也有spfdisk工具和其它常用工具。

⑥     大白菜超级U盘启动制作工具v1.7

这软件原理是量产U盘,量产之余,跟刚提到的第一个工具原理差不多,不过这个工具的好处就是可以自己加入多个镜像,比较方便,可以解决第三个工具的麻烦。

 

(3)以下是一些必须了解到的原理:

如果只是依着步骤去做,永远学不到东西,这其中你必须懂得其中原理,知道为什么要这样去做才行,这样你才会知道,其实很多东西都是百变不离其中的。免得换了一个系统就不会去弄了,这样去学习有什么用?

下面的内容超长,而且有点唠叨,要耐心地看看哦

1. 001 开机流程与主引导分区(MBR)

2. 002 多重启动系统2种方式

3. 003 U盘启动原理

4. 004可启动CD-ROM (原理&&发展史)

5. 005 启动盘个人小结

6. 006 win7与xp系统启动原理

7.007 Linux启动原理

8. 008 mbr修改

9. 009 bootmgr

10. 010 bootini

 

01. 开机流程与主引导分区(MBR)[参考资料:鸟哥私房菜]

我们在计算机概论里面谈到了,没有执行软件的硬件是没有用的,除了会电人之外,而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由于操作系统会控制所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的。

问题是,你有没有发现,既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且执行它的?开机时我的计算机还没有任何软件系统,那它要如何读取硬盘内的操作系统文件啊?这就得要牵涉到计算机的开机程序了!下面就让我们来谈一谈这个开机程序吧!

在计算机概论里面我们谈到那个可爱的BIOS与CMOS两个东西,CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(再次说明,韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候计算机系统会主动执行的第一个程序了。

接下来BIOS会去分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序,此时BIOS就功成圆满,而接下来就是MBR内的引导加载程序的工作了。

这个引导加载程序的目的是在加载(load)内核文件,由于引导加载程序是操作系统在安装的时候所提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,然后接下来就是内核文件的工作,引导加载程序也功成圆满,之后就是大家所知道的操作系统的任务啦!

简单地说,整个开机流程到操作系统之前的动作应该是这样的。

1.BIOS:开机主动执行的韧体,会认识第一个可开机的设备。

2.MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序。

3.引导加载程序(Boot loader):一支可读取内核文件来执行的软件。

4.内核文件:开始操作系统的功能。

.

02多重启动系2种方式

 

1.动态激活分区

2.第三方引导程序

 

1.动态激活分区实现多重启动与MBR(Master Boot Record,主引导记录有关,MBR位于磁盘0柱面0磁头的1扇区上。标准的MBR由引导程序,硬盘分区表和结束标记三部分组成,其中,引导程序用于引导系统和识别分区;硬盘分区表用于说用于说明各分区的大小,性质,激活等状况。计算机从硬盘动系统时,首先会载入MBR,读取引导程序,然后寻找具有激活标记的分区,找到激活的分区后,则跳至该分区的起始位置,载入对应的操作系统。

所以,要设置多重启动,可以通过动态改变分区的激活标记来实现。

2.多重启动方式-第三方引导程序

按照动态激活分区的方法最多可引导4个操作系统,当计算机中要安装4个以上的操作系统时,必须使用第三方引导程序替代MBR引导系统。

由于MBR的硬盘分区表只分成4个部分,每一部分对应一个分区,所以一块硬盘最多也只能分成4个主分区,如果安装4个以上的操作系统,则需要使用逻辑分区来存储系统。

什么叫逻辑分区呢?它是指在硬盘分区表的第4部分不放置主分区的分区信息,而是放置扩展分区的信息,当用户访问第4部分的信息时,自动跳转至扩展分区,然后在扩展分区中建立一个分区表,将扩展分区分成数个逻辑分区。

MBR引导系统时,引导权只会分配给具有激活标识的主分区。那么,如果系安装在逻辑分区中,该如何启动呢?解决方法是:在已激活的主分区中建立一个多重启动程序,MBR引导系统时将引导权移交给这个多重启动程序,由它载入安装在逻辑分区中的操作系统,这样就可以突破主分区的局限,在任意一个分区中安装操系统了。

3.善用Windows 系统自带引导功能,使多系统共存。

Windows自带NTDETECT引导程序在安装操作系统时,应先安装低版本,再安装高版本。

 

003 U盘启动原理

U盘启动原理

请大家现在先看几段对话,相信看完之后就有一个大概的了解。

甲:

其实启动盘的原理很简单,主板支持什么启动,我们就要把U盘模仿这种启动方式的特征,比如USB-HDD启动,那我们就要将U盘的整个分区表模仿移动硬盘,使主板认为你的U盘是移动硬盘,这样你的U盘就能启动了

乙:

启动盘其实是DOS系统啦,启动后可以执行DOS命令和程序,但是不是人人都懂得,所以封装了WinPe,这是最简化的WinXP系统。

丙:

WINPE需要NT的引导记录才能启动,可是一般U盘包括可启动DOS的U盘它的引导记录都是DOS的。

 

网络:

百度百科http://baike.baidu.com/view/1435293.htm

从U盘引导DOS系统,出现的引导菜单选项如下:   

Boot DOS with CDROM 标准功能+光驱驱动   

Boot DOS with CDROM + NTFS 标准功能+光驱驱动+读写NTFS分区   

Boot DOS ONLY (No Any Drivers) 只启动基本DOS系统   

REBOOT YOUR PC 重启计算机

SHUTDOWN YOUR PC 关闭计算机

注1:标准功能是指已加载himem.sys和emm386.exe内存驱动、smartdrv磁盘加速、鼠标驱动、doskey。

注2:基本DOS系统是指仅仅加载IO.SYS、MSDOS.SYS和COMMAND.COM这3个DOS核心文件,不加载其他任何驱动和程序。

   用↑↓键选择你需要的启动方式,回车确定。

   启动成功后,会显示DOS LOADING SUCCESSFUL的字样。

   如果是ZIP模式或FDD模式的U盘,会出现A:\>的提示符

   如果是HDD模式的U盘,会出现C:\>的提示符   至此DOS系统启动完毕,你现在就可以做你该做的事情了。   

 

各种U盘启动模式简介

  1、 USB-HDD   硬盘仿真模式,DOS启动后显示C:盘,HP U盘格式化工具制作的U盘即采用此启动模式。此模式兼容性很高,但对于一些只支持USB-ZIP模式的电脑则无法启动。

   2、 USB-ZIP   大容量软盘仿真模式,DOS启动后显示A盘,FlashBoot制作的USB-ZIP启动U盘即采用此模式。此模式在一些比较老的电脑上是唯一可选的模式,但对大部分新电脑来说兼容性不好,特别是大容量U盘。

   3、 USB-HDD+   增强的USB-HDD模式,DOS启动后显示C:盘,兼容性极高。其缺点在于对仅支持USB-ZIP的电脑无法启动。

   4、 USB-ZIP+   增强的USB-ZIP模式,支持USB-HDD/USB-ZIP双模式启动(根据电脑的不同,有些BIOS在DOS启动后可能显示C:盘,有些BIOS在DOS启动后可能显示A:盘),从而达到很高的兼容性。其缺点在于有些支持USB-HDD的电脑会将此模式的U盘认为是USB-ZIP来启动,从而导致4GB以上大容量U盘的兼容性有所降低。

   5、 USB-CDROM   [2]光盘仿真模式,DOS启动后可以不占盘符,兼容性一般。其优点在于可以像光盘一样进行XP/2003安装。制作时一般需要具体U盘型号/批号所对应的量产工具来制作,对于U3盘网上有通用的量产工具。

 

 

004可启动CD-ROM (原理&&发展史)

若想知道可启动CD—ROM的原理,我们可以探寻一下可启动CD-ROM的起源。

可启动CD-ROM(或称可引导光盘)的概念早在1994年(辉煌的DOS年代)就被提出来了,当时CD-ROM还是PC机的一个昂贵的附属设备(CD-ROM加声卡在当时被成为多媒体套件,带多媒体套件的电脑被成为多媒体电脑),而且在DOS平台下实现光盘引导还存在一些技术上的困难:要在载入DOS之前就必须检测到CD-ROM,而这一点,当时从软件上是无法实现的,惟一的解决之道就是修改电脑主板上的BIOS(或是SCSI与IDE控制器上的BIOS),使之在硬件级而不是软件级首先识别CD-ROM,并自动加载CD-ROM上的启动引导器(存放在CD-ROM上特定区域的一段特殊代码,用以控制CD-ROM的启动)。

1995年1月25日,Phoenix Technologies与IBM联合发表了可启动CD-ROM格式规范(Bootable CD-ROM Format Specification)1.0——El Torito规范,该规范中定义了可启动CD-ROM的数据结构与映像数据的配置及光盘制作的一些详细说明。实际上,该规范也隐含地制定了能够读取可启动CD-ROM光盘的BIOS的规范,使得符合El Torito规范的可启动CD-ROM在电脑上能够正常启动。如果可启动CD-ROM有了,但在电脑上无法读取,岂不还是白搭?!

随后,Phoenix又独自或联合其他厂家相继发布了一系列支持可启动CD-ROM的规范和标准,其中值得一提的是1996年1月11日COMPAQ、Phoenix与Intel联合发布的BIOS启动规范(BIOS Boot Specification)1.01,该规范为BIOS厂家提供了制造支持可启动CD-ROM的BIOS的标准。

自从El Torito规范推出之后,采用单重启动映像的可启动CD-ROM大量涌现,El Torito规范也成为事实上的工业标准。

可启动CD-ROM仍遵循ISO 9660的规范,简单地说,普通CD-ROM+开机功能=可启动CD-ROM。

这也就是为什么Windows 95安装光盘不可启动的根本原因——Windows 95发布时El Torito规范还没有诞生。

El Torito规范定义了CD-ROM中启动映像(bootable image)的配置,还提供了有关可启动CD-ROM的制作与结构的一些详细说明。这些说明的技术性很强,要想弄得很明白需要花费一番大力气。但我们的目的是制作出符合El Torito规范的可启动CD-ROM,所以没有必要在理论上了解那么多,很多现成的烧录软件以能够帮助我们制作出完美的单启动CD-ROM。

多重启动CD-ROM的工作原理

El Torito规范中不仅定义了单重启动映像(single boot image)的配置,而且非常富有远见地定义了多重启动映像(multiple boot images)的配置。

 

可启动CD-ROM的工作原理如下:

BIOS首先检查光盘的第17个扇区(sector 17),查找其中的代码,若发现其中的启动记录卷描述表(Boot Record Volume Descripter),它就根据表中的地址继续查找启动目录(Booting Catalog),找到启动目录后 ,再根据其中描述的启动入口(Boot Entry)找到相应的启动磁盘映像(Bootable Disk Image)或启动引导文件,找到启动磁盘映像后,读取其中的数据,并执行相应的开机动作。

相对于单重启动CD-ROM而言,多重启动CD-ROM的启动目录中包含多个启动入口,指向多个启动磁盘映像。

上图所描述的多重启动配置是El Torito规范所描述的多重启动映像配置,但由于多重启动CD-ROM在实际工作中的应用较少,目前大多数主板的BIOS对此支持得不是很好。在这类主板上,用遵循El Torito规范所制作的多重启动CD-ROM往往只能引导第1个(默认启动出口所指向的)启动映像,而其他的启动映像莫名其妙地消失了!

为了解决这个问题,人们又相继研究出了一些办法来实现CD-ROM的多重启动,目前最流行的办法是“非模拟”(软盘、硬盘)式BIOS模拟法。其工作原理与El Torito规范所描述的单重启动映像配置原理基本相同,只是默认启动的不是软盘映像,而是1个启动引导文件,该启动引导文件引导光盘启动,再由它去查找其他的启动磁盘映像或引导文件,根据配置文件列出启动选项共用户选择。

 

005 启动盘个人小结

看了那么多资料,其实,U盘启动,光盘启动,其实啊,个人就认为,

1.U盘启动就是DOS启动,用IO.SYS、MSDOS.SYS和COMMAND.COM文件。

2.光盘启动就是在光盘的sector 17读取数据,找Boot Record Volume Descripter再找Booting Catalog,Boot Entry,Bootable Disk Image…

3.启动盘的原理可以很简单地这样想:

01.主板的BIOS支持; 02.能从BIOS引导至设备  03.设备的数据符合格式

如何想继续深究就可以去了解,BIOS里面是怎么写的,读取顺序是怎样,设备里面的数据是什么数据,要怎样去写。

 

006 Windows 7&&Windows XP系统启动原理

windows xp和windows 7的启动原理有何不同,双系统又是如何启动的:

在windows 7+xp双系统中,windows 7使用bootmgr接管系统启动模式。电脑自检完成后,开始查找活动主分区(一般情况是C:)并加载它。

接着会继续读取活动分区下的启动配置文件(即C:\BOOT\BCD)和c:\boot.ini,根据BCD和Boot.ini存储的启动信息列出启动菜单(也就是双系统启动菜单)

。对于双系统用户通常列出“Microsoft Windows 7”和“旧版本的Windows”。

 

如果选择前者,Bootmgr将控制权交给windows 7系统目录下的Winload.exe (在\windows\systems下)然后开始启动windows 7。选择后者,Bootmgr将

控制权交给NTLDR,接着开始读取c:\boot.ini并列出其中配置的启动菜单。

 

启动故障就主要出现在Bootmgr(如该文件丢失)、BCD(启动信息配置错误)、Winload.exe(该文件丢失导致Vista无法启动)、Ntldr(该文件丢失导致XP无

法启动)这些文件上。(我的情况属于bootmgr文件丢失,BCD文件启动信息配置错误)

#    XP 、Vista/Win7启动过程

XP的启动:Bios-->MBR-->PBR-->ntldr-->boot.ini-->win kernel;

Vista/Win7的启动:Bios-->MBR-->PBR-->bootmgr-->boot\BCD-->win kerne

 

 

007 Linux启动原理

Linux开机简述

    开机过程制的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。在不同的计算机平台上,LINUX的开机过程稍有不同,本节以X386微机系统为例,介绍LINUX的开机过程。

1。开机自检

    在刚开机时,根据X386CUP的特性,代码段(CS,CODE SEGMENT)寄存器的值为全1,指令计数器(IP,INSTRUCTION POINTER)的值为全0,既CS=FFFF、IP=0000。这时CPU根据CS和IP 的值执行FFFF0H处的指令。由于FFFF0H已经到了基本内存的高地址顶端,所以,FFFF0H处的指令一般总是一个JMP指令,以便CPU能够跳到比较低的地址去执行那里的代码,这个地址通常是ROM BIOS 的入口地址。接着,ROM BIOS 进行开机自检,如检查内存,键盘等。在自检过程中,ROM
BIOS会在上位内存(UMB,UPPERMEMORY BLOCK)中进行扫描,侃侃是否存在合法的设备控制卡ROM BIOS(如:SCSI卡上的ROM),如果有,就执行其中的一些初始化代码。最后,ROM BIOS 读取磁盘上的第一个扇区并将这个扇区的内存装入内存。

2。预引导

    假定硬盘是系统的启动磁盘。硬盘的第一扇区称为主引导记录(MBR, MASTER BOOTRECORD)。MBR 的长度为512字节。可分为两部分:第一部分为引导(PRE-BOOT)区,占了446个字节;第二部分为分区表(PARTITION PABLE),共有66个字节,记录硬盘的分区信息。预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。

    如果用软盘启动计算机,ROM BIOS 读入的是软盘的引导区,既软盘的第一个扇区。

3。核心映像装入

    在LINUX系统中,人们通常把LILO(LINUX LOADER)放在MBR或某个分区的超级块(SUPERBLOCK)中。假定LILO在MBR中,读取MBR后,LILO就会被首先执行。此时,屏幕上出现“BOOT:”字样,接下来的工作是装入LINUX核心映像。如果LILO安装在某个分区的超级块中,通常还会有一个管理开机的程序,这个管理开机的程序负责读取LILO,进而进行核心映像的装入工作。

4。核心启动

    核心装入完毕后,CPU的控制权就交给了核心启动代码。此时,核心首先进行硬件的检测和设备驱动程序的初始化,然后运行INIT。INIT 是LINUX核心启动的第一个用户进程,其进程号为1,是系统其它用户进程的祖先。

5。系统初始化

    INIT进程负责进行一系列系统初始化程序和脚本文件,/ETC/INITTAB中包含了INIT所做的所有工作。

6。等待用户登录

    系统初始化完毕后,INIT 切换到多用户模式,并为每一个虚拟控制台和川行终端启动一个GETTY进程。GETTY进程负责接受和检验用户的登录要求。

    至此,LINUX系统的启动工作全部完成。不同核心版本的LINUX 的启动过程有一定的差异,不同发行版本的LINUX 的启动也可能稍有不同,但基本过程是类似的。另外,在“BOOT:”后,利用“LINUX SINGLE”命令可以迫使LINUX进入单用户模式,除不要求用户登录和不启动虚拟终端以外,启动过程的其它部分也基本类似。

 

启动过程跟踪

 

    本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为平台,描述了从开机到登录的 Linux 启动全过程。该文对i386平台同样适用。

一. Bootloader

    在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等), firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设置;而SRM则具有功能强大的命令行界面,用户可以在控制台上使用boot等命令引导系统。ARC有分区(Partition)的概念,因此可以访问到分区的首扇区;而SRM只能将控制转给磁盘的首扇区。两种firmware都可以通过引导MILO来引导Linux,也可以直接引导Linux的引导代码。

    “arch/alpha/boot”下就是制作Linux Bootloader的文件。“head.S”文件提供了对 OSF PAL/1的调用入口,它将被编译后置于引导扇区(ARC的分区首扇区或SRM的磁盘0扇区),得到控制后初始化一些数据结构,再将控制转给“main.c”中的start_kernel(), start_kernel()向控制台输出一些提示,调用pal_init()初始化PAL代码,调用openboot() 打开引导设备(通过读取Firmware环境),调用load()将核心代码加载到START_ADDR(见
“include/asm-alpha/system.h”),再将Firmware中的核心引导参数加载到ZERO_PAGE(0) 中,最后调用runkernel()将控制转给0x100000的kernel,bootloader部分结束。

    “arch/alpha/boot/bootp.c”以“main.c”为基础,可代替“main.c”与“head.S” 生成用于BOOTP协议网络引导的Bootloader。

    Bootloader中使用的所有“srm_”函数在“arch/alpha/lib/”中定义。

    以上这种Boot方式是一种最简单的方式,即不需其他工具就能引导Kernel,前提是按照 Makefile的指导,生成bootimage文件,内含以上提到的bootloader以及vmlinux,然后将 bootimage写入自磁盘引导扇区始的位置中。

 

008 mbr修改

程序一般通过底层磁盘写入,加驱,的方式来修改MBR

 

009 Bootmgr

  bootmgr:启动管理器,BootMgr是Boot Manager的缩写,在微软的Windows Vista,Windows Server 2008和Windows 7操作系统中,其启动过程与从前的以NT为内核的windows版本略有不同。bootmgr就相当于win nt/win2000/WinXP时代的NTLDR。

  电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取 活动主分区的PBR(分区引导记录,也叫dbr,究竟该叫什么,网络上争论未休,我们姑且叫它pbr吧),PBR再搜寻分区内的启动管理器文件 BOOTMGR,在BOOTMGR被找到后,控制权就交给了BOOTMGR。BOOTMGR读取\boot\bcd文件(BCD=Boot Configuration Data ,也就是“启动配置数据”,简单地说,windwows7下的bcd文件就相当于xp下的boot.ini文件),如果存在着多个操作系统并且选择操作系
统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们选择启动WINDOWS7后,BOOTMGR就会去启动盘寻找 WINDOWS\system32\winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系 统。可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个windows7系统

  可以说,bootmgr就相当于win nt/win2000/WinXP时代的NTLDR。NTLDR是win nt/win2000/WinXP中的引导文件,是一个隐藏的,只读的系统文件,位置在系统盘的根目录,它的主要职责是解析Boot.ini文件,用来装载操作系统。一个值得注意的变化是,Windows 7启动管理器是按空格键而不是按F8功能键调用。 F8键依然具有调取高级启动选项菜单的功能。 为了保持一个可扩展固件接口系统,也为了使版本最高的启动管理器负责管理所有的操作系统,使启动管理器具备向下兼容性、而不是向上兼容,Windows启动管理器对已安装的所有操作系统统一列为一个可供选择的菜单,在配置
Windows Vista/Server 2008 与 Windows 2000/XP/Server 2003 的多系统共存时,BOOTMGR 将全面负责计算机的启动管理工作,NTLDR 将沦为 BOOTMGR 的替补。举个例子,假设我们配置了 Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003 四个操作系统的共存,BOOTMGR 启动菜单并不会把 Windows XP 与 Windows Server 2003 分别列在启动菜单里,而是将它们统一显示为“早期版本的
Windows”。

  启动配置数据(BCD)是一种用于启动时的配置数据固件独立数据库。它取代了NTLDR中的boot.ini,是由微软的新Windows启动管理器使用。启动配置数据 (BCD) 存储包含启动配置参数,并在 Microsoft(R) Windows Vista? 和 Microsoft(R) Windows Server? 2008 操作系统中控制操作系统的启动方式。这些参数以前位于 Boot.ini 文件中(在基于 BIOS 的操作系统中)或稳定 RAM (NVRAM) 项中(在基于可扩展固件接口的操作系统中)。通过在
BCD 存储中添加、删除、编辑和附加项,可以使用 Bcdedit.exe 命令行工具来影响在预操作系统环境中运行的 Windows(R) 代码。Bcdedit.exe 位于 Windows Vista 分区的 \Windows\System32 目录中。创建 BCD 旨在为描述启动配置数据提供一种改进的机制。随着新固件模型 [例如,可扩展固件接口 (EFI)] 的发展,用户需要一个可扩展且可互操作的接口以提取底层固件。这一全新的设计为 Windows Vista 中的多种新功能(例如,启动修复工具和多用户安装快捷方式)提供了支持。

  微软的新一代操作系统Windows 7,然而,这个 7 并不是代表 Windows 7 的核心版本已经从 Windows Vista 的 NT 6 升级至 NT 7,而只是代表 Windows 7 是微软正式发行的桌面 Windows 第七代产品而已。Windows 7 真正的核心版本号仅仅是 NT 6.1,Windows 7 与 Windows Vista 的关系好比是 Windows XP(NT 5.1)与 Windows 2000(NT 5.0)。时隔多年,Windows 又一次与我们玩起了文字游戏,以至于有人将
Windows 7 戏称为“NT 6.1 = Windows 非常 6+1 = Windows 7”。 为了更为直观地理解 Windows 7 = NT 6+1,不妨从 Windows 启动管理器的层面看待这个问题。与容易混淆的 Windows 正式产品名称相比,启动管理器一直是严格按照 Windows 系统的核心版本加以区分的。这是由于在配置多重操作系统共存时,必须由版本最高的启动管理器负责管理所有的操作系统,启动管理器只具备向下兼容性、不具备向上兼容性。因此,启动管理器的版本必须严格按照高低先后的顺序正确排列,而不能像
Windows 的正式名称一样胡乱设置,否则便有可能无法正确配置多重操作系统共存。

  例如,Windows 2000/XP/Server 2003 之所以都叫做 NT 5.X,是因为它们的启动管理器全部都是 NTLDR 与 BOOT.INI。在配置 Windows 2000/XP/Server 2003 彼此之间的多系统共存时,每一个操作系统都是由 NTLDR 与 BOOT.INI 统一管理的,大家是平起平坐的关系。而做为 NT 6.X 的 Windows Vista/Server 2008 则采用了 BOOTMGR 与 BCD 的新式启动管理器,在配置 Windows Vista/Server
2008 与 Windows 2000/XP/Server 2003 的多系统共存时,BOOTMGR 将全面负责计算机的启动管理工作,NTLDR 将沦为 BOOTMGR 的替补。举个例子,假设我们配置了 Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003 四个操作系统的共存,BOOTMGR 启动菜单并不会把 Windows XP 与 Windows Server 2003 分别列在启动菜单里,而是将它们统一显示为“早期版本的 Windows”。只有做为
NT 6.X 的 Windows Vista 与 Windows Server 2008 才有资格在 BOOTMGR 启动菜单中以独立选项的姿态出现。我们只有选择了“早期版本的 Windows”选项,由 BOOTMGR 将启动控制权移交给 NTLDR 并自动切换为 NTLDR 菜单,这时才可以继续选择需要启动 Windows XP 还是 Windows Server 2003。换言之,NTLDR 启动菜单就像是 BOOTMGR 启动菜单的子菜单一样。

  现在我们再来看一下 Windows 7,当我们在安装有 Windows Vista/Server 2008 的计算机中安装了 Windows 7 后,Windows 7 会将自己添加在 BCD 里,与原有的 Windows Vista/Server 2008 实现共存,BOOTMGR 启动菜单将显示 Windows 7、Windows Vista/Server 2008 及早期版本的 Windows(如果有的话)三个选项。换言之,Windows 7 采用的启动管理器依然是 BOOTMGR 与 BCD,它与
Windows Vista/Server 2008 是一个平起平坐的关系。

  假如 Windows 7 的核心版本叫做 NT 7 的话,那么它应该拿出一个版本比 BOOTMGR 与 BCD 更高的新启动管理器才对,由这个新的启动管理器接管 BOOTMGR 与 BCD 的工作。当然,目前在现实中是不存在这样一个启动管理器的,我们不妨将其假设为 Loader v7。那么,当我们安装了 Windows NT 7 系统后,Loader v7 将自动取代 BOOTMGR 与 BCD 负责计算机的启动管理,到时候只有符合 NT 7.X 版本的 Windows 系统才有资格以独立选项的姿态出现在
Loader v7 菜单中,Windows Vista/Server 2008 将被统一显示为“早期版本的 Windows”、Windows XP/Server 2003 则将被显示为“更早期版本的 Windows”(当然,如果几年以后真的有 Loader v7,到时它究竟还能否向下兼容 Windows XP/Server 2003 恐怕很难说了)。

  现在,Windows 7 虽然正式名称叫做 7,但是它却并没有拿出这样一款更高级的 Loader v7 启动管理器,依然只能依靠 BOOTMGR 与 BCD、同 Windows Vista/Server 2008 平起平坐,因此 Windows 7 的核心版本号还没有资格提升到 NT 7 的高度,最多只能叫做 NT 6.1 了。虽然现在 Windows 7 仅仅放出了一个预览版,在正式发行前会有什么变化还不好说,但从目前核心版本号已经确定为 NT 6.1 的情况来看,笔者认为 Windows 7 的启动管理器不会有什么大变了。可以预见在今后的三五年内,我们的计算机都将长期使用
BOOTMGR 与 BCD。就像 Windows 2000/XP/Server 2003 可以并列在一起成为 NT 5.X 系列一样、Windows Vista/Server 2008(包括将来的 R2)/Windows 7 也可以并列在一起组成一个相对完整的 NT 6.X 家族了。

其实,在 Windows 7 核心版本号确定之前,笔者个人还是非常希望 Windows 7 能够设计新的启动管理器取代 BOOTMGR 与 BCD,真正成为 NT 7 的。现有的 BOOTMGR 与 BCD 虽然已经很好用,但有一个最大的缺陷就是它始终还是基于纯字符界面的、不是一个支持鼠标操作的 GUI 界面,叫做 Windows 未免有些名不副实。其它操作系统可是早就实现图形方式的启动管理器了,这不得不说是一个遗憾。试想如果开机自检后可以出现一个图形化的启动界面,通过鼠标点击按钮选择操作系统以及安全模式等选项该有多好,期待
NT 7 将来可以实现。目前只有使用 ERD Commander 等第三方启动管理器软件才可以实现这个目的了.

 

10 Boot.ini

boot.ini

百科名片

Boot.ini文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。Boot.ini在缺省状态下被设定为隐含和系统文件属性, 并且被标识为只读文件。

简介

  Windows XP主要依赖Boot.ini文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。Boot.ini在缺省状态下被设定为隐含和系统文件属性, 并且被标识为只读文件。

  Windows 2000、Windows XP、Windows Server 2003主要依赖Boot.ini文件来确定计算机在引导过程中显示的可供选取的操作系统类别。

  当我们在电脑中安装了多系统(如Windows 98和Windows XP)之后,每次启动计算机时都会出现一个系统引导菜单,在此选择需要进入的系统后回车即可。这个引导程序名为Boot.ini,在安装Windows 2000(XP)时程序自动被安装,使用它我们可以轻松对电脑中的多系统进行引导,还可以通过该引导文件,设置个性化的启动菜单。

操作方法

  Boot.ini文件位于C盘根目录下,是一个隐藏文件,在“运行”中输入“c:\boot.ini”即可启动该文件。

  如果想对boot.ini文件进行修改,请这样做:

  为确保在Windows Explorer中看到Boot.ini文件,

  “工具”——“文件夹选项”——“查看”菜单上选择“显示隐含文件和文件夹”,并将“隐藏受保护的操作系统文件(推荐)”的勾去掉,再应用,确定;更改boot.int前,右击boot.int——“属性”,去掉“只读” 。

  除了直接编辑boot.ini文件外,还可以借助命令行工具bootcfg.exe对Boot.ini文件执行编辑操作,您可针对系统等待时间(Windows在选择缺省操作系统前所等候的时间)进行修改, 并在现有基础上添加新的供选项目。

  如需启动bootcfg.exe工具, 请依次执行下列操作步骤:

  按“Windows键+R”(也就是“开始”-“运行”),在提示框中输入"cmd"(注意,不输入引号),进入“命令提示符”,在命令行状态下输入bootcfg可以查询当前boot.ini文件的详情。

  执行bootcfg /?来查看相关参数功能。

1.自定义延迟时间

  延迟时间是系统启动引导菜单后在设定的延迟时间内用户没有进行任何操作时,进入默认的操作系统。

  系统默认的延迟时间为30秒,如果感觉默认的延迟时间过长,可以输入自己需要的延时时间,如10秒。

  设置时,首先打开Boot.ini文件(注意要去掉该文件的隐藏、只读属性),随后在[boot loader]字段下找到“timeout=”语句,将其中的30,改为10即可。

  我们还可以在“系统配置实用程序”中对其进行修改。在“开始/运行”中键入“msconfig"命令,在弹出的“系统配置实用程序”中单击“Boot.ini”标签,在“Boot.ini”界面中的“超时XX秒”项中输入需要的延时时间即可。

2.自定义显示内容

  在多系统启动时,有一个操作系统选择列表,这些列表显示的是电脑中所有操作系统的名称,如:Microsoft Windows XP Professional。

  我们可以对这些显示内容进行修改,加载一些个性化的设置。

  打开“boot.ini”文件,找到[operating systems]字段,该字段是显示当前操作系统列表,

  其格式为multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

  后面引号中的部分就是系统启动时显示的内容,只要将引号中的这些内容更改为自己需要的文字即可。

3.定义默认启动系统

  装了多系统后,boot.ini会将其中一个系统设置为默认启动系统,如Windows XP,在超过延迟时间后将自动引导默认的系统启动。

  我们可以根据需要将默认的启动系统更改为其它的系统(如Windows 98),如果不想直接修改boot.ini文件的话,可以这样做:

  右键单击“我的电脑”,选择“属性”,在系统属性对话框中单击“高级”选项,随后在下面的“启动和故障恢复”项中选择“设置”按钮,弹出一个“启动和故障恢复”对话框,单击“系统启动”项中的默认操作系统下拉菜单,选择一个需要的系统,单击“确定”即可;

  也可以在“系统配置实用程序”中进行设置,选中想要设为默认的操作系统,点击下面的“设为默认”即可。

4.加载启动参数,更改启动画面

  boot.ini在引导多系统启动时提供了很多的参数命令,这些启动参数可以得到不同的启动效果。

  boot.ini在默认的情况下加载的是/fastdetect参数,表示启动时不检查串行口和并行口。

  其实我们可以更改为其它参数,更改时首先在“boot.ini”中选择需要更改的系统列表,随后将该系统中的参数/fastdetect改为相应的参数值即可。以后再启动该系统就会加载一些设置信息或画面。我们以可以在“系统配置实用程序”中对一些参数进行设置,切换到“boot.ini”选项,先选中需要更改的系统,随后在“启动选项”下端勾选需要的启动参数即可,此对几个常用参数加以说明:

  SAFEBOOT:安全启动,只启动HKLM\System\CurrentControlSetControl\SafeBoot中的驱动程序和服务,其后可跟三个参数Minimal、Network或Dsrepair。

  Minimal和Network允许在网络连接下启动系统;Dsrepair要求系统从备份设备中调入活动目录的设置,还有一个选项是Minimal(AlternateShell),它让系统调入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默认的Explorer。

  /NOGUIBOOT:不加载VGA驱动程序,也就不会显示启动过程和失败时的蓝屏信息。

  /BOOTLOG:将日志写入Nnbtlog.txt文件。

  /BASEVIDEO:使用标准VGA方式启动,这种方式主要用于显示驱动程序失效时。

  /SOS:在调入驱动程序名时显示它的名称,因驱动问题而无法启动时使用比较好。

  通过以上设置我们就可以轻松设置启动菜单了!

  FAQ:

  boot.ini文件丢失怎么办?

  通过手动在C盘创建一个boot.ini文件

  一般的XP下面的boot.ini文件为:

  [boot loader]

  timeout=10

  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

  [operating systems]

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer

  然后把此文件保存为boot.ini文件即可。

  或者,把C:\Windows\pss下的boot.ini.backup复制到C盘下,去掉.backup扩展名即可。

更改内容

  如果您需要更改boot.ini文件的内容,可以这样:

  1. 单击开始按钮,单击控制面板,然后双击系统。

  2. 单击高级选项卡,然后单击“启动和故障恢复”下的设置。

  通常,boot.ini 文件包含以下数据:

  [boot loader]

  timeout=30

  default=scsi(0)disk(0)rdisk(0)partition(1)\winnt

  [operating systems]

  scsi(0)disk(0)rdisk(0)partition(1)\winnt = "Windows NT" /NODEBUG C:\ = "Previous Operating System on C:\"

  这个文件分为引导加载部分(boot loader)和操作系统部分(operatingsystems)两大块。在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒;default=xxxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。在操作系统部分,则列出了所有的操作系统路径和清单,以供用户选择。[1][2]

数据含义

  下面的列表描述了 Boot.ini 文件中数据的含义:

  • “timeout”指定在选择默认的操作系统之前 Windows 等待的时间

  • “default”指定默认的操作系统。

  • “scsi(0)”表示主控制器(通常也是唯一的控制器)负责此设备。如果有两个 SCSI 控制器并且磁盘与第二个控制器相关联,则第二个控制器称为“scsi(1)”。

  如果系统使用 IDE、增强的 IDE (EIDE) 或增强的小型设备接口 (ESDI) 驱动器,或者如果系统使用没有内置 BIOS 的 SCSI 适配器,请将“scsi”替换为“multi”。

  • “disk(0)”指要使用的 SCSI 逻辑单元 (LUN)。它可以是独立的磁盘,但是大多数 SCSI 设置对每个 SCSI ID 只有一个 LUN。

  • “rdisk(0)”指物理磁盘 1

  • 本例中的“partition(1)”是计算机中第一个驱动器上的唯一分区。如果有两个分区(C 和 D),则分区 C 为 partition(1),分区 D 为 partition(2)。

  • 包含多重引导方式的参数(如果有的话)要求检查 Winnt 文件夹以从指定的 SCSI 控制器的磁盘和分区进行引导。

  • “/NODEBUG”指定没有监视任何调试信息。调试信息仅对程序开发人员有用。

  • 您可以添加 /SOS 选项以在加载驱动程序时显示驱动程序名。默认情况下,OS Loader 屏幕仅显示进度点。

  • “Previous Operating System on C:\”表示“上一个操作系统”是 MS-DOS,因为“C:\”是 MS-DOS 路径。

详解

打开

  默认的情况下这个文件是隐藏的,准确路径是c:\boot.ini,可以用记事本打开这个路径,也可以在“运行”中输入“c:\boot.ini”启动该文件。

  常用的方法是去掉隐藏后用记事本打开,“资源管理器”→“工具”→“文件夹选项”→“查看”去掉“隐藏……”前面的√,“隐藏文件和文件夹”选“显示……”这样就去掉了隐藏,可以在c:\看到boot.ini文件了。

修改

  [boot loader]

  timeout=0

  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

  [operating systems]

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /nodetect /noguiboot

  这是我的win2003的boot.ini文件,我就以我的这个来作示范

  timeout=0延迟时间设置

  延迟时间是系统启动引导菜单后在设定的延迟时间内用户没有进行任何操作时,进入默认的操作系统。

  默认设置是30,如果你只有一个系统的话就设置为0,多系统的话就根据自己的情况设置一个时间。

  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS默认系统

  默认系统就是延迟时间到了后自动进入的系统

  我们经常修改的是partition(1)\WINDOWS这一块

  partition(1)所指的就是第1个分区,通常也就是c:盘,WINDOWS就是你的系统文件夹。

  如果你要默认的操作系统是d:盘的XP,那么这一块的内容就是partition(2)\WINDOWS

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /nodetect /noguiboot系统列表

  在这个位置列上你的所有操作系统(一行一个系统)

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS这一块和上面“默认系统”的修改方法一样

  =""""中间的内容就是开机显示列表时本系统的名称,可以任意修改,而且还支持中文!

  /nodetect /noguiboot这部分是启动参数,在"后面加一个半角空格/参数,可以加多个。下面是各项参数的详细解释。

  /fastdetect:快速检测,很多网站都推荐修改为/nodetect

  /SAFEBOOT:安全启动,只启动HKLM\System\CurrentControlSetControl\SafeBoot中的驱动程序和服务,其后可跟三个参数Minimal、Network或Dsrepair。Minimal和Network允许在网络连接下启动系统。而Dsrepair要求系统从备份设备中调入活动目录的设置。还有一个选项是Minimal(AlternateShell),它让系统调入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默认的Explorer。

  /NOGUIBOOT:不加载VGA驱动程序,也就不会显示启动过程和失败时的蓝屏信息。

  /BOOTLOG:将日志写入Nnbtlog.txt文件。

  /BASEVIDEO:使用标准VGA方式启动,这种方式主要用于显示驱动程序失效时。

  /SOS:在调入驱动程序名时显示它的名称,因驱动问题而无法启动时使用比较好。

 

(二)开始工作

// 先想出了一种最简单,最有可能成功安装的方案。

思路是把多系统的安装变为单系统的安装,最后用MBR引导。

 

1.       尝试轮流激活分区, 按ghost 7 + ghost XP+CentOS顺序安装

01.在安装时,首先分区,激活sda1,装上Ghost 7在sd1中,

02.然后,激活sda2, 装上ghost xp在sd2中,

03.直接装centos在sda3上,

04.直接使用centos安装中的MBR引导或激活sda3,在那扇区上引导,

或直接用Spfdisk在MBR上引导。

Yeah,方案试验成功!!!(建议装系统前隐藏其它主分区,到最后才显出来)

 

// 尝试换一下顺序,猜想结果是一样的,不过还是想试试。

2.       尝试轮流激活分区, 按ghost 7 + ghost XP+CentOS顺序安装

01在安装时,首先分区,激活sda2,装上Ghost 7在sd2中,

02然后,激活sda1,装上ghost xp在sd1中,

03直接装centos在sda3上,

04直接使用centos安装中的MBR引导或激活sda3,在那扇区上引导,或直接用Spfdisk在MBR上引导。

其实跟上面的方法是一样的,成功安装了。

 

//打算不换激活分区,直接用MBR引导,本打算也能行的,终于问题来了。

3.       将sd3作为激活分区,直接按CentOS+ ghost 7 + ghost XP 顺序安装

尝试:在2的基础上,即sd1 XP(激活)+sd2 7 +sd3 CentOS

01 格化sd1与sd2,不清空MBR,

02  sd1为激活状态,将ghost 7还原到sd2,用(第2大步装好的)CENTOS的MBR引导进入sd2,完成剩下的安装。

1.       再将GHOST XP还原到sd1,并用MBR引导进入sd1完成安装。

 

——Yeah,Yeah,有问题出来啦!在MBR那里引导成功了,但是安装失败。

情况如下:

1.现sd1为激活状态, 将Win 7的安装镜像还原到sd2后,用MBR 成功进入sd2,但继续安装时显示丢失文件,安装系统失败。

//现为探究是不是非激活分区的原因,继续试验。

2.在以上基础中,将sd2设为激活状态,继续用MBR进入sd2,出现“正在启动”,但安装过程依然失败。

//怀疑是否曾进入过一次安装失败,导致即使把sd2设为了激活也不能成功装下去。

3.于是,在sd2为激活的状态下,再GHOST到sd2做测试,OK,这次,启动且安装成功。

//为了进一步证明推测(安装分区激活状态才能成功地安装),现再做一次测试。

4.格化sd1 &&sd2,将sd3设为激活。将GHOST安装镜像还原到sd2中,启动成功(后来才发现,原来是失败了,只是我没有耐心等到中间过程,这方法不行),失败。

//奇怪了,这次怎么会成功了呢?推测错了?于是:

5.再来,将sd2设为激活,格化sd2,系统用ghost方式,装到sd1。呃~~一次比一次奇怪,这次“Windows安装程序无法将windows配置为在此计算机的硬件上运行”。

6.感觉很奇怪,于是就再重复第五步的步骤试试,哦,幸好是一样的问题,不然的话真的不能用常理来解释的了。

//会不会是光盘问题?于是我换了另一个光盘.

6.重复第五步的步骤,还是同样的情况。

//再假设会不会是安装方法问题(用Ghost手动还原镜像),没什么理由吧,因为都是Ghost,只是一个是手动,一个是自动。

7.于是直接选第一选项,也重复第五步的步骤,试试,嗯,同样的问题产生了。排除光盘的可能。

//这时还是有点相信自己的直觉(安装分区激活状态才能成功地安装),于是就再测试。

8.设sd3为激活分区,再直接用系统安装碟的第一选项还原到C盘安装。

设sd1为激活,再继续启动安装,失败。

9.最后,设sd1为激活,重新用光盘安装镜像,成功。

10.还是有点不放心,现再做一次试验,设sd1为激活,还原Ghost xp 安装镜像到sd2上,Yeah,安装失败!出现了Error:Can not delete output file C:\Program Files\....跳过了这一步后,到了注册组件一步,“…注册失败”,出现了很多什么什么注册失败。OK,现基本明白了。

 

//终于,搞了这么长一段时间,问题总算是想通了很多。

——问题分析&&结论推测:

还原了GHOST在非激活分区后,继续安装进程,ghost版的系统在解封装过程中,猜测它喜欢将文件直接COPY或注册在激活分区上,但我还原的分区又不是激活分区,所以,系统不能成功地安装。

 

——问题解决方案。

如何可以实现不调激活分区地安装系统?现想到一个解决方法:

1.先在激活分区上完整地装好一个WINDOWS,再用GHOST备份(现称为backup.gho)。

2.直接在该激分区上用Ghost方式装另一个系统,

3.将backup.gho还原到另一分区上。

4.最后再正常安装第三个系统。

现根据方案现尝试:

将成功安装的系统恢复到sd1,sd2上。用sd3的第一扇区作引导,引导成功,启动成功。

 

//传说安装版的Windows光盘装起来会覆盖MBR,重建起属于自己的MBR和分区表。那么,安装版的多系统,怎么多装才能成功引导呢?于是…下面是试验过程。

1.       在sd3为激活状态,sd1和sd2同时都成功地装上了XP的基础上,

2.       我尝试直接把安装版的win7装在sd2上,看会有什么效果。果然,重启一次后发觉,主引导区真的被清了,装完之后,能启动的剩下win7。

3.       之后,我再做多一次试验,把sd2清空,在sd1装上XP,再在sd1上装安装版的win7,xp的系统文件夹被win7变成了windows.old文件夹,启动项不出来?

4.       这时,我不管,什么都不删,即现sd1上有xp和7,我继续装,再在sd1里面装上一个安装版的xp,嘿嘿,几个系统会不会打架呢?呃~win7的引导又不见了,剩下的是xp,嗯嗯,这下子明白了,只要是安装版的windows它都会覆盖MBR的,我再试,直接继续在sd2装上安装版的win7,在sd2中,终于,这次,系统默认生成了三个选项,一是windows xp的,二是win 7(上次装的),第三个就是这次装的win 7,嗯嗯,这样的话,结论就可以出来啦。

//装安装版的windows会将MBR清空再将自己要安装的分区设为激活,之后,它会在自己的分区上建立引导,如果想实现双系统都共存且不用任何工具的安装,可以先把一个系统装在一个盘上,再把Windows7装在另一个盘上就可以了,另外提醒一点,就是Windows xp的boot.ini是不会引导Windows7的,除非用了什么工具,两个系统的不同引导原理就知了,Windows7用的是bootmgr接管系统启动模式。

//刚刚说这么多,忘了说一点,我会把centos有最后安装,因为它安装时作引导很方便,所以做试验的时候直接忽略它了。

//当然,除了安装方法的改变外,还可以直接改Windows中的boot.ini或bootmgr,或用修复工具在windows中对启动项进行修复,easybcd,wingrub之类的软件,不过这里我就不做测试,这个没有必要去深究。如果想直接在Linux修改引导方式,这里也先不深究了,因为,我看过书上有专门讲Linux引导的,用了几十页去介绍,到时候现慢慢玩也不迟。

//还有,如果大家想安四个系统,五个系统,六个系统,N个系统,一样的装法,最简单的可以把多系统当作单系统装,装完以后备份,到时恢复到不同的分区上,包括逻辑分区也可,最后想办法创好引导就好了。

 

—————————试验完毕,终于可以让自己的电脑休息一下啦!——————————

晕啊~~一天连续装N次系统,幸好是冬天,不然电脑不用要了,太热了电脑都罢工去了。

 

最后,终于想做的测试做完了,重新完整地装上自己的机,

先把硬盘完全清了,MBR清了,主引导也清了,硬盘里全空了,NOW,重新分配。

 

Amd250+kingston2G*2(dual)+ M4A785板+WD500GB+航嘉冷静王V2.31 +SAMSUNG刻

 

总大小,465.8GB

硬盘         465.8GB 

(P+P+P)(70G)+(E)(390G)          

sd1   30GB        Windows 7  64bit

sd2   20GB        Windows XP 32bit

sd3   20GB        CentOS 5.3 (Linux)

 

sd5   30GB        software

sd6   249GB      file

sd7   50GB        process

sd8   50GB        backup+隐

 

sd9        3GB  /home

sd10      2GB  linux swap  

sd11            2GB  /var

sd12      1GB /tmp

 

采用将多系统变为单系统安装的方法sd1+sd2+sd3+SPFDISK,安装完成。

 

终于,完工啦!

 

抱歉!评论已关闭.