剖析系统启动文件的奥秘

电脑中安装有多个操作系统的朋友知道,在电脑加电自检后会出现一个启动菜单,它列出了在这台电脑上安装的所有的操作系统,用户使用“↑”“↓”键可以选择进入哪个系统。实际上这一切都源于一个名为BOOT.INI的文件,自Windows NT开始它就存在于Windows系统中。Windows XP主要依赖BOOT.INI文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。一般情况下,它位于C盘根目录下,在默认状态下是一个隐藏只读的系统配置文件。要查看它,只要去掉其隐藏属性,即可用记事本打开它,也可以在“开始”中运行msconfig.exe,在弹出的“系统配置实用程序”对话框中单击“BOOT.INI”选项卡就可窥见其庐山真面目。下面就以笔者电脑中的BOOT.INI文件为例(如图1),向大家详加解释。

深入浅出:剖析双系统启动文件的奥秘

  BOOT.INI文件的常见格式如下:

  [boot loader]

  timeout=30

  default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

  [operating systems]

  multi(X)disk(Y)rdisk(Z)partition(Q)WINDOWS="Microsoft Windows XP Professional" /fastdetect

  SCSI(X)disk(Y)rdisk(Z)partition(Q)WIN98="Microsoft Windows 98" /fastdetect

  该文件分为Boot loader(引导加载)和Operating systems(操作系统)两大部分。在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒,用户可以根据需要自行更改。default=xxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。但是令很多用户困惑不解的是,那些“multi(0)disk(0)rdisk(0)partition(1)”是什么意思?

  实际上这是根据ARC规则命名的,它是x86或RISC计算机中用于标识设备的一种通用方法。ARC名字指向存放操作系统文件的分区,对于磁盘设备, ARC名字的构成如下:

  (X)disk(Y)rdisk(Z)partition(Q)

  component部分有两种有效值,即multi和SCSI,它用于标明硬件适配器。multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,而SCSI则表示一个SCSI BIOS禁止的SCSI硬盘。X值表示操作系统的系统根目录所在的分区所在的硬盘所在的磁盘控制器在同一磁盘控制器上的序号(X从0开始)。

  disk(Y):对于SCSI硬盘来说,Y值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Y从0开始);对于multi来说,Y值无任何意义,恒为0。

  rdisk(Z):对于multi来说,Z值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Z从0开始);对于SCSI硬盘来说,Z值无意义,恒为0。

  partition(Q):Q值表示操作系统的系统根目录所在的分区在同一硬盘上主分区的序号(Q从1开始)。

  Operating systems部分列出了这台电脑上所有操作系统的路径和清单,其中还包括一些如/fastdetect、/basevideo、/sos之类的开关符。这些开关符都有特殊的含义,一般情况下建议不要更改。

  OK,基于以上知识,我们对BOOT.INI文件应该有了一个比较清楚地认识。于是,我们就可以根据需要对其进行修改了。以笔者的电脑为例,BOOT.INI文件显示,硬盘中装有两个Windows XP专业版系统(实际上一个为中文版,一个为英文版),默认情况下是启动硬盘第三分区上的系统(英文版)。如果要它在默认情况下启动硬盘第一分区上的系统(中文版),而且为了以示区别,将两个Windows XP Professional分别对应的加以标记。这时,我们可以通过修改BOOT.INI文件来达到目的,修改之后如图2所示。重新启动计算机,看看你的愿望是不是实现了呢!

深入浅出:剖析双系统启动文件的奥秘

  由以上可知,BOOT.INI是一个非常重要的系统文件,没有它,系统将无法进行引导,所以我们平时除了要对其作必要的备份之外,还要编辑它的方法。特别是在安装多系统时,如果没有按照从低到高(Windows 98、Windows 2000、Windows XP、Windows 2003)的安装顺序,该文件往往会被损坏。如果我们掌握修改和编辑它的办法,就不会到时候无计可施了


二:解读多重启动引导文件——BOOT

 Windows NT类的操作系统,也就是Windows NT/2000/XP中,有一个特殊文件, 也就是“BOOT.INI”文件,这个文件会很轻松地按照我们的需求设置好多重启动系统。
    “BOOT.INI”文件会在已经安装了Windows NT/2000/XP的操作系统的所在分区 ,一般默认为C:/下面存在。但是它默认具有隐藏和系统属性,所以你要设置你的文件夹选项,以便把 “BOOT.INI”文件显示出来。我们可以用任何一种文本编辑器来打开他它。一般情况下,它的内容如下:
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)/Windows
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)/Windows="Microsoft Windows XP Professional" /fastdetect
    在Windows 2000或者是XP系统中,我们可以很容易的设置“BOOT.INI”文件。 那就是在“我的电脑”上面点击右键,选择“属性”打开“系统属性”对话框,再点击“高级”选项卡, 在“启动和故障修复”里面点击“设置”按钮,就可以打开“启动和故障修复”对话框了,在这里面我们 就可以对它进行详细设置。

    如果你拥有Windows XP操作系统,那么你可以用“系统配置实用程序”来更方 便的编辑“BOOT.INI”文件。具体做法是:打开“开始”菜单,点击“运行”命令,再在弹出的文本框中 输入“msconfig”点击“确定”后就会弹出“系统配置实用程序”,再点击“BOOT.INI”选项卡,就会出 现如图所示的界面。在这里,我们可以很方便地设置文件。言归正传,现在,来说明一下这个文件内容的 含义。
    1.系统加载部分([boot loader])
    这一部分很简单,只有两个设定。那就是“timeout=”和“default=”。
“timeout=”就是设定开机时系统引导菜单显示的时间,超过设定值则自动加载下面“default=”指定的 操作系统。默认值是30,单位为秒。我们可以在这里面设定等待时间的长短。如果将其设为“0”那么就 是不显示系统引导菜单。
    “default=”则是设定默认引导的操作系统。而等号后面的操作系统必须是已 经在“[operating systems]”中存在的。如果想默认为加载另外的操作系统,我们可以参看 “[operating systems]”中的操作系统列表,然后把想要加载的操作系统按照格式写到“default=”后面就可以了。
    2.操作系统部分([operating systems])
    在这里面,列出了机器上所安装的全部操作系统。比如机器上只有一个操作系 统,那么就只有一条信息,那就是“multi(0)disk(0)rdisk(0)partition(1)/Windows="Microsoft Windows XP Professional" /fastdetect” 在这里需要注意的是,在英文引号内的文字就是引导操 作系统菜单时显示出来的让我们选择操作系统的提示文字,在这里面我们可以随意更改。而“multi(0) disk(0)rdisk(0)partition(1) /Windows”这一句就需要些解释了。因为它涉及ARC(高级RISC计算机)命名,它是x86或RISC计算机中用 于标识设备的动态方法。 ARC命名的第一部分用于标识硬件适配卡/磁盘控制器,它有两个选项CSI和 Multi。
    Multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,而SCSI则表示 一个SCSI BIOS禁止的SCSI硬盘。(x)是硬件适配卡序号。Disk(x)表示SCSI总线号。如果硬件适配卡为 Multi,其正确表示方法就为disk(0),rdisk(x)则表示硬盘的序号,如果硬件适配卡为SCSI则忽略此值;
    partition(x)表示硬盘的分区序号。了解这些,我们就可以解释前面那条信息 的含义了,即“multi(0)disk(0)rdisk(0)partition(1) /Windows”为,在0号非SCSI设备上的第0号磁盘上的第一个分区里面的“Windows”目录下可以找到能够 启动的操作系统。
    等号后的内容前面已经说过,那个就是引导菜单显示出来的供我们选择的提示 文字。而后面的“/fastdetect”又是作什么用的呢?这是一个开关符,用来控制启动该操作系统时的具 体选项,下面再来详细的介绍各种开关符的含义:
    /3GB:这是Win2000 SP3新引入的。这使得用户区和系统区分为3G比1G的比例。 只有用户使用NT企业版,应用程序也支持3GB选项时,此选项才生效。
    /BASEVIDEO:使用标准VGA方式启动。这种方式主要用于显示驱动程序失效时。
    /BAUDRATE:指出用于调度的波特率,如果用户不设置,则使用默认的9600,而 对于线缆Modem则使用19200。
    /BOOTLOG:使Win2000将日志写入 %SystemRoot%/NTBTLOG.TXT 。
    /BURNMEMORY=:使NT在已知的内存上少使用指定的数量,如果/burnmemory=64 ,则有64M内存NT不使用。
    /CRASHDEBUG:调度器在NT启动时启动,只有在内核错误时才有用,如果系统经 常会无故出错,这个选项就很有用了。
    /DEBUG:在启动NT时调入调度器,它可以在任何时间激活,在错误可以再次出 现时使用它比较合适。
    /DEBUGPORT= comx :指定用于调度的端口,其它X就指端口号。
    /FASTDETECT:对于Win2000启动时,它使系统不检查串行口和并行口。
    /HAL=:允许用户不使用默认的HAL。
    /INTAFFINITY:设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断 请求。如果不设置此选项,Win2000会使所有处理器接收中断请求。
    /KERNEL=:与上面的功能相同,不过是针对SMP中的内核而言的。
    /MAXMEM:n:指定NT可以使用的最大内存数,如果一个内存片损坏,这个开关就 十分有用了。
    /NODEBUG:不使用调试信息。
    /NOGUIBOOT:指定此选项会使Win2000不加载VGA驱动程序,也就不会显示启动 过程和失败时的兰屏信息。
    /NOSERIALMICE=[COMx | COMx,y,z…]:在特定的COM中上禁止对串行鼠标的检 测。如果用户有一个非鼠标设备接在COM口上,这个选项会十分有用。如果此开关未加参数,系统会禁止 所有COM口。
    /NUMPROC=n:只允许前N个系统处理器工作。
    /ONECPU:在多处理器中只使用一个处理器。
    /PCILOCK:不让NT为PCI设置分配IO/IRQ资源,而启用BIOS设置。
    /SAFEBOOT:安全启动,这个大家一定十分熟悉,Win2000只启动 HKLM/System/CurrentControlSet/ Control/SafeBoot中的驱动程序和服务,其后跟三个参数MINIMAL, NETWORK或DSREPAIR之一。MINIMAL和NETWORK在允许网络下启动系统。而DSREPAIR要求系统从备份设备中 调入活动目录的设置。还有一个选项是"(ALTERNATESHELL)",它让系统调入由 HKLM/System/CurrentControlSet/ SafeBoot/AlternateShell指定的SHELL程序,而不使用默认的Explorer。
    /SOS:在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用比 较好。
    /WIN95:在装有三个系统DOS、Win9x和Windows NT的系统上,让NTLDR直接调用 Win9x。启动文件BOOTSECT.W40。
    /WIN95DOS:在装有三个系统DOS、Win9x和Windows NT的系统上,让NTLDR直接 调用DOS启动文件BOOTSECT.DOS
    /YEAR=:使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年 ,此选项仅对NT4+SP4和Win2000生效。
了解了以上这些,我们就可以更加轻松控制好我们系统的启动

    下面是一个典型的Boot.ini文件:

    [boot loader] timeout=30 default=scsi(0)disk(0)rdisk(0)partition (1)/winnt

    [operating systems] scsi(0)disk(0)rdisk(0)partition(1)/winnt = "Windows NT" /NODEBUG C:/ = "Previous Operating System on C:/"

    下面是上述的Boot.ini文件一行行的解释:

    [boot loader] timeout = 30

    在选择默认操作系统之前,Timeout指定了Windows Nt的等待时间。

    default=scsi(0)disk(0)rdisk(0)partition(1)/winnt

    Default指定了默认的操作系统。注意:无论什么时候只要操作系统是 Windows NT,新的存储路径语法就被使用。对于这个语法的更多信息,在下面微软知识库中的词中得到查 询。

    [operating systems] scsi(0)disk(0)rdisk(0)partition(1)/winnt = "Windows NT" /NODEBUG C:/ = "Previous Operating System on C:/"

    Scsi(0)意思是primary controller(通常只是一个)对设备负责。如果有两 个SCSI卡并且磁盘挂起第二个,那么它将呼叫scsi(1)。

    disk(0) 参考涉及物理磁盘1。

    rdisk(0)-rdisk()参数涉及哪一个SCSI logical unit (LUN)被使用,哪 一个可能成为一个分离的磁盘,但是大量的SCSI setups每个SCSI ID只有一个LUN。

    在此例子中的partition(1)是计算机中第一个驱动器的唯一的分区。如果 有两个分区,C和D,C将是partition(1)并且D将是partition(2)。

    /winnt 是多重引导将考虑的目录,通过它从特殊的SCSI卡的磁盘和分区之 一来引导。

    /NDOEBUT 详细说明没有调试信息被监测。调试信息仅仅对开发者有用处, 同时它也会稍微减慢Windows NT的速度。
当Windows NT引导过程中/SOS转换被载入的时候,它们被添加来显示驱动器的名字。依据默认情况,OS Loader screen仅仅回送进程点。

    The Previous Operating System on C:/ implies that it is MS-DOS, because "C:/" is an MS-DOS path.

    双启动选单boot.ini文件的秘密

    boot.ini文件的位置在C盘根目录双击打开,只有寥寥几行:

    [boot loader]
    timeout=3
    default=multi(0)disk(0)rdisk(0)partition(1)WINNT
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)WINNT="Microsoft Windows 2000 Professional" /fastdetect
    multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Microsoft Windows XP Professional" /fastdetect


    “timeout=3”是设置系统等待时间的,最少可以是0秒,最多……几个月是没 问题的。

    “default=multi(0)disk(0)rdisk(0)partition(1)WINNT”是启动时被自 动标亮的选项。当时间为0时,系统将启动此处所设系统。

    “[operating systems]”列出了供我们选择的启动项。我的电脑是 “Microsoft Windows 2000 Professional”与“Microsoft Windows XP Professional”,如果你看惯了原来的提示,尽可以用其他的内容代替,并且支持汉字, 将你想要的内容放到引号中即可。你还可以多加几条假的选项,用来迷惑随便动你电脑的人,方法是在“ [operating systems]”下加入类似“multi(0)disk(0)rdisk(0)partition(1)WINNT=”的选项,只要改动其中的某 个数字或文件夹即可。此外,如果将选项的前后顺序互换,在启动时也随即改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值