Win 98系统启动过程全揭密(二)
2、IO.SYS提供的扩展的DOS默认配置 IO.SYS在启动时与DOS的最大不同,是提供能满足大多数DOS应用的缺省CONFIG.SYS配置,能够自动加载必要的驱动程序,以保证Win 9X正常启动,具体内容如下:
HIMEM.SYS :支持1M以上内存,提供扩展内存(XMS)管理保证Win启动的必需文件
DBLBUFF.SYS :双重缓存驱动程序,仅需要时加载,多用于支持SCSI卡
IFSHLP.EXE :增强的文件管理驱动程序,支持Win的VFAT系统
保证Win启动的必需文件
SETVER.EXE :版本登录服务,消除版本限制,仅在DOS下用
Dblspace.bin :DOS 6.0磁盘压缩驱动程序,仅在硬盘被压缩时才加载
Drvspace.bin :DOS 6.22以后的磁盘压缩驱动程序,同上
DOS=HIGH,UMB :将DOS系统移入HMA,以留出更多的常规内存而UMB对系统没有任何作用,实属摆设
FILES=30 :能打开的最大文件数,能满足大多数应用仅为DOS下使用,Win 9X不需要
BUFFERS=30 :设置最大的磁盘缓冲区数,能满足大多数应用
仅为DOS使用,Win 9X不需要
FCBS=4 :文件控制块数,现已极少使用,仅为DOS使用
LASTDRIVE=Z :最大盘符设置,该值设置过小,将无法加载光驱
STACKS=9,256 :设定栈数目、大小,该设置为旧程序使用Win 9X系统不需要
SHELL=COMMAND.COM/P :指定Win 9X命令行处理程序
IO.SYS提供的系统环境设置如下:
命令查寻路径 : PATH=C:\Windows;C:\Windows\COMMAND
DOS提示符 : PROMPT=$P$G
临时文件目录 : TEMP=TMP=C:\Windows\TEMP
命令行处理程序位置:COMSEPC=C:\Windows\COMMAND\COMMAND.COM
IO.SYS提供了较完善的系统配置,使取消CONFIG.SYS、AUTOEXEC.BAT成为可能。出于兼容性考虑,IO.SYS不加载EMM386.EXE驱动,不提供扩充内存EMS和上位内存UMB。EMM386.EXE在系统搜寻新硬件时可能引起系统死机,在日常使用时不会有问题。
3、IO.SYS控制下的启动过程
⑴系统启动时,IO.SYS显示“Starting Windows 95...”,此时可由启动功能键选择启动方式。
⑵IO.SYS根据启动菜单选择和MSDOS.SYS的配置确定启动模式。
⑶若使用原DOS系统,IO.SYS自动将DOS和Win 9X的系统启动文件对换,然后由原DOS控制系统启动过程。(即Win 9X的双重启动过程最终是由IO.SYS控制完成的,与引导记录等无关)
⑷IO.SYS根据启动模式先由CONFIG.SYS进行系统硬件配置,若CONFIG.SYS中没有加载Win 9X启动的必需文件(如HIMEM.SYS、IFSHLP.EXE等),系统则根据默认设置自动加载。(如果要加载使用扩展内存的驱动程序,如EMM386.EXE等,必须在CONFIG.SYS第一行加上HIMEM.SYS驱动,否则由于系统此时未提供扩展内存,EMM386.EXE等程序将无法运行)
⑸完成CONFIG.SYS等硬件配置后,IO.SYS通过COMMAND.COM调用AUTOEXEC.BAT进行软件配置。
⑹系统根目录下的BOOTLOG.TXT是由IO.SYS控制完成的,其它一些日志文件多是在安装系统时建立的。
⑺完成DOS启动过程后自动调用Win.COM,开始启动GUI。
四、MSDOS.SYS
1、MSDOS.SYS的作用
在Win 9X中,MSDOS.SYS变成了纯文本系统配置文件,用于控制Win的启动方式。可以在DOS模式下解除其特殊属性(只读、隐藏、系统),根据需要自行配置。MSDOS.SYS可以是空文件,甚至可以删除,当然此时系统只能以纯DOS方式启动,不能进入GUI系统。
不同方式形成的MSDOS.SYS默认内容不同,主要有四种,其中前三种方法形成的MSDOS.SYS文件无任何配置命令,几乎是空文件,仅保留一行注释,以说明该文件形成方式,这类文件多见于系统软盘中。不同的MSDOS.SYS内容如下:
1)Win安装时建立的系统盘 : ;Win95EBO
2)FORMAT /S建立的系统盘 : ;FORMAT
3)SYS A:传递建立系统盘 : ;SYS
4)建立系统时在硬盘上形成的MSDOS.SYS
系统硬盘中的MSDOS.SYS内容比较完整,包括必要的启动配置命令,文件长度必须大于1024 bytes,即占用两个以上磁盘扇区,这一要求在该文件中说明为保证兼容性,但从未见更深入的介绍,实际上文件小于1024 bytes对系统并无明显影响,该要求估计是为了保证系统与旧版DOS和Win 3.X兼容而提出的,这一点尚望行家指教。
用SYS向硬盘传送系统以修复启动文件时,将覆盖引导记录、IO.SYS和COMMAND.COM,MSDOS.SYS的内容保持不变,保证系统引导部分修复后,整个系统仍能正常启动,这一做法非常聪明。
2、MSDOS.SYS的配置参数
MSDOS.SYS由三小节组成,其各配置参数无顺序要求,内容如下:
[PATHS] 指定Windows的系统文件路径
WinDir= 指定Win 9X各系统文件及其子目录所在的目录
该路径必须包括注册表文件SYSTEM.DAT和Win 9X启动必需的驱动程序,如HIMEM.SYS等
WinBootDir= 指定Win 9X的GUI启动程序Win.COM所在的目录
HostWinBootDrv= 指定Win.COM所在的驱动器,不需冒号(:)
UninstallDir= 指定保存原系统的目录,便于自身删除时恢复原系统用
该参数出现在Win的升级版本中
[OPTIONS] 指定Windows的启动方式,/前的值为缺省值
LOGO=1/0 允许/禁止启动时显示Win 9X标志(LOGO)
屏蔽该画面有时可解决第三方内存管理程序造成的冲突 看到系统启动过程出现的提示信息,也使系统启动稍快,启动
启动时可用ESC键清除Win 9X标志,查看实模式启动信息
BootKeys=1/0 允许/禁止启动键改变启动方式
为0时直接进入默认的启动方式,不能用启动热键转换
BootGUI=1/0 启动图形界面GUI / 仅启动DOS 7.X,进入DOS字符界面
为0时可为DOS 7.X多重启动提供方便,能进一步启动图形界面
BootWin=1/0 启动Win 9X / 启动旧版DOS,可按要求对换系统文件
当BootWin=0时,默认启动旧版DOS,若此时选择启动菜单的
“Previous MS-DOS version”,将启动Win 9X
注:BootWin级别高于BootGUI,两者冲突时以前者为准
BootMulti=0/1 禁止/允许双重启动
即在启动菜单中是否出现“Previous vertion of MS DOS”项
从旧版DOS升级Win 9X时会自动出现此项,并设置为 1,但对于Win 97/98 来说,如果不对启动系统进行修改,选择此项将造成系统下次无法启动
BootMenu=0/1 系统启动时是否自动显示启动选择菜单
该值为1,在启动时会直接弹出启动选择菜单
Network=0/1 启动菜单中是否出现“带网络的安全模式启动”项
即“Safe mode with network support”项
BootDelay=n 系统引导前显示“Starting Windows 95...”时间,默认为2秒供使用启动键改变启动方式,该值为0时不出现任何提示直接进入默认的启动过程,可加快启动速度,但仍可用启动热键选择启动方式
BootMenuDefault= 启动菜单使用的默认选项,缺省值为 1
BootMenuDelay= 启动菜单按默认方式启动延迟间,缺省值30,单位:秒
BootSafe=0/1 系统是否以安全模式启动,为1时系统直接以安全模式启动
BootWarn=1/0 启动时是否显示警告信息
当系统非正常关机重新启动时,是否提示“应进入安全模式” 实际上安全模式解决问题能力非常有限,真正的系统问题在该模式下是无法解决的,不进也罢
BootConfig=1/0 能否使用单步配置模式,其作用不明
DisableLog=0/1 在“Step-by-step config”时是否创建BOOTLOG.TXT
1:不选择“Logged”时不询问也不创建Bootlog.txt
0:询问是否创建日志文件Bootlog.txt
SystemReg=1/0 系统启动时是否运行Windows 9X注册器
1:“Step-by-step config”下询问是否运行注册器
其他模式则自动运行注册器
0:不运行也不询问是否运行Windows 9X的注册器
该注册器在整个系统启动前首先运行,但运行与否对系统无明显影响,其作用不明
LoadTop=1/0 是否将COMMAND.COM、Drvspace.bin、Dblspace.bin等加载到高端内存,如启动中出现内存地址冲突,可将该值设为0
这类冲突多由CONFIG.SYS、AUTOEXEC.BAT加载的程序造成Autoscan=1/0
非正常关机(如掉电等)再启动时,是否自动执行SCANDISK
(仅在Win 97/98有效)
取消自动检测硬盘固然可以免除一些烦恼,但确实给系统带来了隐患,还是不关闭的好
DoubleBuffers=1/2/0 是否加载BDLBUFF.SYS,提供双重缓存支持
0:不提供;1:需要时提供,如有SCSI卡等;