玩通透 全面解析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

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

利用Python和C++解析gltf文件的示例详解

《利用Python和C++解析gltf文件的示例详解》gltf,全称是GLTransmissionFormat,是一种开放的3D文件格式,Python和C++是两个非常强大的工具,下面我们就来看看如何... 目录什么是gltf文件选择语言的原因安装必要的库解析gltf文件的步骤1. 读取gltf文件2. 提