乐子王

为计算机技术狂人带去乐趣

Dec
19

Windows启动菜单原理及修复详解

类别: 玩转电脑

作者:陈锐  (本站原创,未经允许不得转载)

安装双操作系统或者或是多操作系统的朋友肯定碰到过重新安装Windwos98后启动菜单丢失的情况。本文即以最长见的Windows98和WindowsXP双系统并存为例,来详细的说明WindowsXP多重启动的工作原理及启动菜单的修复。至于其他各种各样的多系统情形如WindowsXP和Linux并存或者WindowsME和Windows2000共存等等,读者弄清楚原理后推而广之,即可顺利解决其引导问题。

文中有关于Windows98的内容同样适用于Windows95和WindowsME,有关于WindowsXP的内容同样也适合于Windows2000和Windows2003。

首先需要说明两个名词,MBR和启动扇区。

MBR称为硬盘主引导记录。它是由Fdisk建立在硬盘柱面0、磁头0、扇区1上面的硬盘引导记录数据区。用于启动时将系统控制权转交给用户制定的,并在分区表中登记了的某个操作系统。MBR不属于任何一个操作系统。

启动扇区是硬盘活动分区的第一逻辑扇区。在DOS\Windows分区中,此扇区内容也被称为DOS引导记录(DBR)。DBR是第一个(除MBR外)在系统启动时必须装载的程序段,其主要功能时完成DOS\Windows的自举。不同的操作系统会建立不同的启动扇区,并由启动扇区中的代码引导系统。启动扇区的概念是本文的重点,以下介绍的操作都是围绕着启动扇区这个中心来进行的。

WindowsXP在安装时重写磁盘的MBR,同时在这个磁盘的第一个可引导分区上写入引导扇区。WindowsXP安装程序将检测它要覆盖的引导扇区是否是有效MS—DOS引导扇区,如果是的话安装程序将把启动扇区中的内容复制到该分区根目录下的Bootsect.dos文件中去。

在写DBR之前,WindowsXP的安装程序将把所用文件拷入磁盘,包括两个重要的引导文件Ntldr和Ntdetect.com。安装程序还将在引导扇区的根目录中建立启动菜单文件Boot.ini。关于这个文件的建立及配置方法请参考相关文献。

现在我们来了解一下电脑的启动过程。

  • 计算机首先加电自检;
  • 所有硬件自检通过以后,BIOS中的自举程序读取硬盘MBR中的代码,将其载入内存并执行;
  • 程序检查硬盘是否完好并从分区表中查找可引导的“活动分区”,将活动分区的第一逻辑扇区(启动扇区)装入内存并执行;
  • 启动扇区的代码从该分区的根目录中读取Ntldr文件,将其加载到内存后把控制权转移给Ntldr;
  • Ntldr进行一系列初始化后读取Boot.ini文件,清除屏幕。如果它发现Boot.ini文件中存在多个引导选项,就向用户提供引导选择菜单即启动菜单;如果只有一个项目,Ntldr将忽略菜单显示并继续该项目系统的启动。

这时,如果用户选择启动Windows98,Ntldr将读取Bootsect.dos文件内容到内存,切换到16位模式并执行Bootsect.dos中的代码。

该代码读取IO.sys和Msdos.sys文件并执行,Windows98开始启动;如果用户选择启动WindowsXP,Ntldr将会加载和执行Ntdetect.com,WindowsXP开始启动。

说了这么多其实是要说明,WindowsXP的启动菜单正常工作需要以下几个条件:

  1. 启动扇区中写入的是WindowsXP的引导代码;
  2. Ntldr,Ntdetect.com和Boot.ini文件在活动分区根目录下。如果需要显示中文在根目录下还要有Bootfont.bin字体文件;
  3. Boot.ini文件被正确配置。

此外如果要引导Windows98的话还要有Bootsect.dos这个文件。该文件中包含的是Windows98安装程序写入到启动扇区中的代码。如果没有这个文件,即使在Boot.ini文件中加入了Windows98的启动选项亦不能启动Windows98。

理解了以上的知识,修复启动菜单就很容易了。简单地说其实只有几个步骤:

  1. 生成Bootsect.dos文件;
  2. 将Windows XP的启动信息写入引导扇区;
  3. 拷贝Ntldr和Ntdetect.com以及Bootfont.bin文件至C盘根目录;
  4. 正确配置Boot.ini文件。

下面具体介绍修复方法。

下面介绍的3种的方法适用于格式化C盘再安装Windows98后启动菜单丢失的情况。如果只是从WindowsXP下面将Windows98的Windows目录删除再安装Windows98,则启动菜单不会丢失。

第一种方法:

1.进入Windows98,插入WindowsXP安装光盘,如果光盘自动运行就选择“安装WindowsXP”。否则就进入光盘上的I386目录,运行Winnt32.exe;
2.选择全新安装,之后选下一步。在提示下载文件的地方选“否”跳过下载;
3.等复制文件完毕出现红色进度条提示你重新启动时按ESC键推出;
4.进入C盘根目录,编辑Boot.ini文件,具体的修改方法这里不再赘述,请参考其他文献。合理配置并正确地加入WindowsXP的启动项目;
5.删除整个硬盘上以“$”开头的垃圾文件。

第二种方法:

如果在方法1种提示重启时没有及时按下ESC键而导致系统重新启动,那么就得按下面得办法操作。

转载必须注明文章来源于乐子王,否则后果自负!

标签: , , ,

随机文章:

喷喷口水

尊姓大名

电子邮箱 (不会被公开)

网址

XHTML: 你可以使用这些标记: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

关于乐子王

    

    关于这个网站

    这是一个适合计算机技术爱好者的网站,这里有很多新奇、有趣甚至是奇奇怪怪的软件、网站,有专为技术狂人准备的漫画,有漂亮的图片,有令人惊叹的视频,还有狂人们折磨、折腾电脑的经验技巧。 有人说,这个网站的东西我怎么看不懂啊?那是因为,这里的乐趣,只有技术狂人才会明白……

    关于我

    我热爱王小波,我本能地渴望自由,我崇尚智慧,我希望有一天,可以不用工作,不用见客户,每天睡到自然醒。 我的邮箱:greenmangy@gmail.com

    豫ICP备08000845号