多系统安装课题研究小钱版.docx

上传人:b****8 文档编号:10984240 上传时间:2023-02-24 格式:DOCX 页数:30 大小:39.51KB
下载 相关 举报
多系统安装课题研究小钱版.docx_第1页
第1页 / 共30页
多系统安装课题研究小钱版.docx_第2页
第2页 / 共30页
多系统安装课题研究小钱版.docx_第3页
第3页 / 共30页
多系统安装课题研究小钱版.docx_第4页
第4页 / 共30页
多系统安装课题研究小钱版.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

多系统安装课题研究小钱版.docx

《多系统安装课题研究小钱版.docx》由会员分享,可在线阅读,更多相关《多系统安装课题研究小钱版.docx(30页珍藏版)》请在冰豆网上搜索。

多系统安装课题研究小钱版.docx

多系统安装课题研究小钱版

多系统安装-小钱版

这些天,由于个人需要,需要用到多系统,于是,我在探究系统的安装,在想,如何能实现多系统的安装呢?

其实,每一个系统的安装并不难,多系统安装的难度就在于多系统启动项的生成,如何能让多个系统存在且能成功地引导。

我们知道,一个硬盘中主分区只能设置三个,能通过什么样的方法让它们同时激活并且用上一个逻辑分区启动?

这就是我最近探讨的问题。

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

(一)准备阶段

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

① Windows7(新电脑公司GhostWin7x64纯净软件选择Y1.1)

现在Windows7已经差不多普及了,所以,为了赶上这个时代,为了让某些软件可以用,为了让自己的计算机性能可以充分发挥,我就先装个Windows7玩一下,熟悉一下。

安装版的没有去找,一上网就看见了一个Ghost版的,算了,直接用Ghost版装吧。

② WindowsXp(GhostXPSP3系统之家2011贺岁纯净版v1.0)

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

③ CentOSV5.3(Linux)

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

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

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

1 迷你U盘系统PocketOSv09.10.30

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

2 UltraISO_Premium_V9.36

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

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

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

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

不过有一个缺点,它是一个镜像,没有刚刚提到的第一个好用,不过还是可以根据第一个的方法用刚刚提到的UltralISO制作出来。

具体方法这里就不介绍了,大家自行去探究一下吧!

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

一般系统安装盘上都已经集成了各种工具,但是为什么还要多此一举用这个光盘呢?

呃~这个只是个人爱好,用以收藏,不过如果大家出去帮人装机的时候带上这个挺不错的,因为里面集成了各种驱动,不过上网去下载,还有一点就是能够光驱引导,也是全部常用工具齐全。

5MaxDOS

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

里面的也有spfdisk工具和其它常用工具。

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

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

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

如果只是依着步骤去做,永远学不到东西,这其中你必须懂得其中原理,知道为什么要这样去做才行,这样你才会知道,其实很多东西都是百变不离其中的。

免得换了一个系统就不会去弄了,这样去学习有什么用?

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

1.001开机流程与主引导分区(MBR)

2.002多重启动系统2种方式

3.003U盘启动原理

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

5.005启动盘个人小结

6.006win7与xp系统启动原理

7.007Linux启动原理

8.008mbr修改

9.009bootmgr

10.010bootini

01.开机流程与主引导分区(MBR)[参考资料:

鸟哥私房菜]

我们在计算机概论里面谈到了,没有执行软件的硬件是没有用的,除了会电人之外,而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。

由于操作系统会控制所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的。

问题是,你有没有发现,既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且执行它的?

开机时我的计算机还没有任何软件系统,那它要如何读取硬盘内的操作系统文件啊?

这就得要牵涉到计算机的开机程序了!

下面就让我们来谈一谈这个开机程序吧!

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

这个BIOS就是在开机的时候计算机系统会主动执行的第一个程序了。

接下来BIOS会去分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。

MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序,此时BIOS就功成圆满,而接下来就是MBR内的引导加载程序的工作了。

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

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

1.BIOS:

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

2.MBR:

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

3.引导加载程序(Bootloader):

一支可读取内核文件来执行的软件。

4.内核文件:

开始操作系统的功能。

.

02多重启动系2种方式

1.动态激活分区

2.第三方引导程序

1.动态激活分区实现多重启动与MBR(MasterBootRecord,主引导记录有关,MBR位于磁盘0柱面0磁头的1扇区上。

标准的MBR由引导程序,硬盘分区表和结束标记三部分组成,其中,引导程序用于引导系统和识别分区;硬盘分区表用于说用于说明各分区的大小,性质,激活等状况。

计算机从硬盘动系统时,首先会载入MBR,读取引导程序,然后寻找具有激活标记的分区,找到激活的分区后,则跳至该分区的起始位置,载入对应的操作系统。

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

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

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

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

什么叫逻辑分区呢?

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

MBR引导系统时,引导权只会分配给具有激活标识的主分区。

那么,如果系安装在逻辑分区中,该如何启动呢?

解决方法是:

在已激活的主分区中建立一个多重启动程序,MBR引导系统时将引导权移交给这个多重启动程序,由它载入安装在逻辑分区中的操作系统,这样就可以突破主分区的局限,在任意一个分区中安装操系统了。

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

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

003U盘启动原理

U盘启动原理

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

甲:

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

乙:

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

丙:

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

网络:

XX百科

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

  

BootDOSwithCDROM标准功能+光驱驱动  

BootDOSwithCDROM+NTFS标准功能+光驱驱动+读写NTFS分区  

BootDOSONLY(NoAnyDrivers)只启动基本DOS系统  

REBOOTYOURPC重启计算机

SHUTDOWNYOURPC关闭计算机

注1:

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

注2:

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

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

  启动成功后,会显示DOSLOADINGSUCCESSFUL的字样。

  如果是ZIP模式或FDD模式的U盘,会出现A:

\>的提示符

  如果是HDD模式的U盘,会出现C:

\>的提示符  至此DOS系统启动完毕,你现在就可以做你该做的事情了。

  

各种U盘启动模式简介

  1、USB-HDD  硬盘仿真模式,DOS启动后显示C:

盘,HPU盘格式化工具制作的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日,PhoenixTechnologies与IBM联合发表了可启动CD-ROM格式规范(BootableCD-ROMFormatSpecification)1.0——ElTorito规范,该规范中定义了可启动CD-ROM的数据结构与映像数据的配置及光盘制作的一些详细说明。

实际上,该规范也隐含地制定了能够读取可启动CD-ROM光盘的BIOS的规范,使得符合ElTorito规范的可启动CD-ROM在电脑上能够正常启动。

如果可启动CD-ROM有了,但在电脑上无法读取,岂不还是白搭?

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

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

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

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

ElTorito规范定义了CD-ROM中启动映像(bootableimage)的配置,还提供了有关可启动CD-ROM的制作与结构的一些详细说明。

这些说明的技术性很强,要想弄得很明白需要花费一番大力气。

但我们的目的是制作出符合ElTorito规范的可启动CD-ROM,所以没有必要在理论上了解那么多,很多现成的烧录软件以能够帮助我们制作出完美的单启动CD-ROM。

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

ElTorito规范中不仅定义了单重启动映像(singlebootimage)的配置,而且非常富有远见地定义了多重启动映像(multiplebootimages)的配置。

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

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

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

上图所描述的多重启动配置是ElTorito规范所描述的多重启动映像配置,但由于多重启动CD-ROM在实际工作中的应用较少,目前大多数主板的BIOS对此支持得不是很好。

在这类主板上,用遵循ElTorito规范所制作的多重启动CD-ROM往往只能引导第1个(默认启动出口所指向的)启动映像,而其他的启动映像莫名其妙地消失了!

为了解决这个问题,人们又相继研究出了一些办法来实现CD-ROM的多重启动,目前最流行的办法是“非模拟”(软盘、硬盘)式BIOS模拟法。

其工作原理与ElTorito规范所描述的单重启动映像配置原理基本相同,只是默认启动的不是软盘映像,而是1个启动引导文件,该启动引导文件引导光盘启动,再由它去查找其他的启动磁盘映像或引导文件,根据配置文件列出启动选项共用户选择。

005启动盘个人小结

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

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

2.光盘启动就是在光盘的sector17读取数据,找BootRecordVolumeDescripter再找BootingCatalog,BootEntry,BootableDiskImage…

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

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

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

006Windows7&&WindowsXP系统启动原理

windowsxp和windows7的启动原理有何不同,双系统又是如何启动的:

在windows7+xp双系统中,windows7使用bootmgr接管系统启动模式。

电脑自检完成后,开始查找活动主分区(一般情况是C:

)并加载它。

接着会继续读取活动分区下的启动配置文件(即C:

\BOOT\BCD)和c:

\boot.ini,根据BCD和Boot.ini存储的启动信息列出启动菜单(也就是双系统启动菜单)

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

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

选择后者,Bootmgr将

控制权交给NTLDR,接着开始读取c:

\boot.ini并列出其中配置的启动菜单。

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

法启动)这些文件上。

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

#XP、Vista/Win7启动过程

XP的启动:

Bios-->MBR-->PBR-->ntldr-->boot.ini-->winkernel;

Vista/Win7的启动:

Bios-->MBR-->PBR-->bootmgr-->boot\BCD-->winkerne

007Linux启动原理

Linux开机简述

开机过程制的是从打开计算机电源直到LINUX显示用户登录画面的全过程。

分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。

在不同的计算机平台上,LINUX的开机过程稍有不同,本节以X386微机系统为例,介绍LINUX的开机过程。

1。

开机自检

在刚开机时,根据X386CUP的特性,代码段(CS,CODESEGMENT)寄存器的值为全1,指令计数器(IP,INSTRUCTIONPOINTER)的值为全0,既CS=FFFF、IP=0000。

这时CPU根据CS和IP的值执行FFFF0H处的指令。

由于FFFF0H已经到了基本内存的高地址顶端,所以,FFFF0H处的指令一般总是一个JMP指令,以便CPU能够跳到比较低的地址去执行那里的代码,这个地址通常是ROMBIOS的入口地址。

接着,ROMBIOS进行开机自检,如检查内存,键盘等。

在自检过程中,ROMBIOS会在上位内存(UMB,UPPERMEMORYBLOCK)中进行扫描,侃侃是否存在合法的设备控制卡ROMBIOS(如:

SCSI卡上的ROM),如果有,就执行其中的一些初始化代码。

最后,ROMBIOS读取磁盘上的第一个扇区并将这个扇区的内存装入内存。

2。

预引导

假定硬盘是系统的启动磁盘。

硬盘的第一扇区称为主引导记录(MBR,MASTERBOOTRECORD)。

MBR的长度为512字节。

可分为两部分:

第一部分为引导(PRE-BOOT)区,占了446个字节;第二部分为分区表(PARTITIONPABLE),共有66个字节,记录硬盘的分区信息。

预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。

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

3。

核心映像装入

在LINUX系统中,人们通常把LILO(LINUXLOADER)放在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:

”后,利用“LINUXSINGLE”命令可以迫使LINUX进入单用户模式,除不要求用户登录和不启动虚拟终端以外,启动过程的其它部分也基本类似。

启动过程跟踪

本文以Redhat6.0Linux2.2.19forAlpha/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”下就是制作LinuxBootloader的文件。

“head.S”文件提供了对OSFPAL/1的调用入口,它将被编译后置于引导扇区(ARC的分区首扇区或SRM的磁盘0扇区),得到控制后初始化一些数据结构,再将控制转给“main.c”中的start_kernel(),start_kernel()向控制台输出一些提示,调用pal_init()初始化PAL代码,调用openb

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1