玩通透 全面解析Windows双系统引导菜单

2024-04-29 02:58

本文主要是介绍玩通透 全面解析Windows双系统引导菜单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在,使用双系统的朋友可不在少数,在开机时,系统会显示一个双引导菜单让我们选择欲进入的操作系统(图1),如果不选择的话,将会在30秒后自动引导高度条所在的操作系统。不过,你对双引导菜单到底了解多少呢?
  
  

 


  
  一、双引导是如何实现的
  
  当系统加电自检通过后(POST),BIOS将根据用户事先设置的引导顺序从硬盘或软驱或光驱进行启动,例如硬盘启动是首先将主引导记录读入内存,然后将控制权交给主引导程序,再检查分区表的状态,寻找活动的分区,最后再由主引导程序将控制权交给活动分区的引导记录,最后由引导记录加载操作系统。
  
  因此,只要你按照先Windows 9x/ME,再Windows 2000/XP的顺序安装系统,一般情况下即可自动生成双引导菜单,但如果顺序相反的话,双引导菜单可就无法自动生成了。
  
  二、自由摆布双引导菜单
  
  其实,图1所示的系统引导顺序我们完全可以自由调整,包括缺省引导的操作系统、显示操作系统列表的时间、在需要时显示恢复选项的时间等。
  
  在Windows XP/2000中,在桌面上右击“我的电脑”图标,再依次点击“系统→高级”,就可以看到 “启动和故障恢复”对话框(图2),这个对话框可以完成以下设置任务:
  
  

 


  
  1.更改默认的操作系统
  
  只要在“默认操作系统”下拉列表框中选择一个操作系统即可,选择后会看到在""后多出一个“/fastdect”的单词,这说明该操作系统已被设置为默认的引导系统,点击下面的“确定”即可生效。
  
  2.设定显示操作系统列表的时间
  
  在这里你可以自由设定显示操作系统列表的时间或者显示恢复选项的时间,缺省设置是30秒,不过我们可不希望在启动时等待如此之久,因此将它改成了5秒,建议朋友们不要再缩短这个时间,否则可来不及按下F8键了。
  
  三、深入认识双引导菜单
  
  不过,笔者更感兴趣的是上图中的这一句话:要手动编辑启动选项,请单击“编辑”。这个“编辑”按钮下有些什么内容呢?
  
  原来,双启动菜单是由一个名为boot.ini的文本文件所控制,所谓“手动编辑启动选项”也就是说对这个文本文件中进行手工编辑(图3),这里的内容虽不多,但朋友们可能不太容易理解,这里笔者就详细解释一下:
  
  

 


  
  1.[Boot Loader]:引导记录
  
  (1)timeout=5
  
  在你选择默认操作系统之前,“timeout”表示在NTLKR加载默认的操作系统之前可供用户从启动加载程序画面选择操作系统的秒数,如果该值为0,则NTLDR将不显示加载程序画面,而直接启动默认的操作系统,其实它也就是前面所提到的“显示操作系统列表的时间”框。默认值是30秒,这里笔者已经将之调整为5秒。
  
  (2)Default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS
  
  Default当然是指默认(缺省)的意思,也就是系统默认要加载的那个操作系统路径,即系统启动时等待你选择的高亮条部分。但可能有很多朋友对multi(0)、disk(0)、rdisk(0)、partition(1)这些名称很不理解,其实在Windows中,这涉及到ARC的一些知识:
  
  ARC是x86或RISC计算机中用于标识设备的一种动态方法,ARC命名的第一部分是用于标识硬件适配卡/磁盘控制器,典型的ARC名字的构成结构如下所示:
  
  component(x)disk(y)rdisk(z)partition(a)
  
  这里的“component”字段一般只有两种有效值:scsi和multi,代表设备的硬件适配器。scsi当然是指SCSI磁盘,multi则是指除SCSI之外的其它磁盘接口。“x”代表适配器的序号,第一个为0,第二个为1,该值可以一直分配下去,直到所有驱动器分配结束;皔”是指多总线SCSI适配器中的总线号码,对multi而言,该值为0;“z”是指multi适配器上磁盘的序号,对SCSI该值为0;“a”是指磁盘上分区的序号,所有分区都有一个对应号码,从1开始,但不包括0和5。
  
  因此,“Default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS”这行语句的含义就是指默认的操作系统位于一块非SCSI接口的序号为0的硬盘上的第2个分区上。这里的“partition(2)”是计算机中第一个物理硬盘上的第二个分区,实际上就是D盘(笔者将Windows XP安装在D盘,而将Windows 98SE安装在C盘),现在你弄清楚了吧?
  
  2.[Operating System]:操作系统
  
  (1)multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Microsoft Windows XP Professional" /fastdetect
  
  现在就很容易理解了,这行语句是告诉我们:默认的操作系统是D盘上的“Microsoft Windows XP Professional”,即Windows XP。这里的“/fastdetect”是一个使用参数,代表启动时不检查串行口和并行口。
  
  (2)C:="Windows 98SE"
  
  这是第2个操作系统,在启动菜单中显示为“Windows 98SE”。
  
  3.附录:boot.ini文件的使用参数
  
  刚才,我们已经提到“/fastdetect”是一个使用参数,代表启动时不检查串行口和并行口。详细说来,boot.ini文件中还可以使用好多参数呢。但太多的使用参数,它们的含义怎么记得住哟?不要紧,在“命令提示符”下使用“BOOTCFG /?”命令就可以查看所有参数列表及其解释了(图4)。
  
  

 


  
  四、双启动菜单的高级编辑
  
  怎么样,现在你对boot.ini文件的结构和用途弄明白了吧?其实,编辑boot.ini文件和在图2对话框中进行编辑结果是一致的,不同的是如果由于某种原因而无法进入Windows时,你就可以在在DOS下或另一操作系统中手工编辑boot.ini这个文件啦。
  
  1.在DOS或其他操作系统中手工编辑启动选项
  
  简单来说,可以修改的启动选项包括默认操作系统的修改、设置显示操作系统列表的时间、修改启动菜单中操作系统的显示名称等。首先,打开“我的电脑→工具→文件夹选项→查看”,在“高级设置窗口”中去掉“隐藏受保护的操作系统文件”前面的钩然后“确定”;进入C盘根目录就可以找到boot.ini文件了。这里笔者试着将双引导菜单中原来的那行“Windows 98SE”改成了吓人的“Microsoft Windows 2008”(图5),重启后看看,有新意吧?
  
  

 


  
  2.去除手工删除操作系统后留下的尾巴
  
  可能朋友们都有这样的体会,请神容易送神难,当某种情况下不得不手工删除一个操作系统后却发现启动菜单中还保留着那烦人的选项,而且还必须等待30秒,除非你敲下回车键。特别是在安装多操作系统的情况下,我们为了图省事,通过格式化的方法重新安装了某一操作系统,却发现已丢失了那个多重启动菜单,此时该怎么办,难道必须再一次安装另一操作系统吗?
  
  现在,我们只要打开这个boot.ini文件,将已删除的操作系统那行语句删除就万事大吉啦。当然,如果boot.ini文件的属性是只读,请先去除呀,另外请删除时先备份原文件。
  
  3.小小改动,防止他人使用系统
  
  知道了boot.ini文件的原理,我们可以对它进行小小的改动,这样就可以防止他人未经授权使用系统。例如,将boot.ini文件更名或者转移到其他路径下,系统启动时找不到该文件,就会不断报错无法进入;或者也可以对boot.ini文件中的语句进行改动,例如将“Default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS”更改为“Default=multi(0)disk(1)rdisk(0)partition(2)WINDOWS”就可以了。以后自己要使用时,只要改回去即可。不过,新手们还是不要动它,否则,你就只能望屏兴叹了。
  
  五、如何恢复受损的双引导菜单
  
  相信使用双操作系统的朋友一定对双引导菜单是又爱又恨,原因当然是这个双引导菜单经常会莫名其妙地出现各种故障,例如重新安装了Windows 9x或格式化了C盘,这时启动时就不会再看到这个双引导菜单,自然也就无法进入另一个操作系统中,该如何来恢复它呢?
  
  其实,方法简单得很,虽然双引导菜单受到破坏,但另一操作系统的系统文件和配置均未受损,你只要重新运行Windows 2000/XP安装程序,选择“修复”安装,待文件复制结束第一次提示重新启动时选择不启动,然后结束安装,再手工删除硬盘根目录中一些以$开头的文件夹或文件(它们都是在安装过程中产生的临时文件),重新启动后即可恢复引导菜单了。

这篇关于玩通透 全面解析Windows双系统引导菜单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944948

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?