详解Windows的boot.ini引导程序
不少人对windows2000的boot.ini文件很感兴趣,因为它关系到我们的系统引导。尽管boot.ini文件内容不多,但是包含的知识点却不少,笔者在此做一个详细的分析。这里举个例子,以笔者自己使用的PC为例。
boot.ini文件具体内容:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINNT="Microsoft Windows 2000 Sever" /fastdetect
C:\="Microsoft Windows"
C:\bootsect.bin="linux"
这里,大家可以看到boot.ini文件分为两部分,[boot loader]和[operating systems]。
一、首先介绍[boot loader]:
timeout=?? 这个等号后面的数字表示在出现多操作系统引导时。选择菜单滞留的时间。默认为30秒。
这个只有三个取值范围,有、无、无效。若修改为1-999之间的一个整数,则多操作系统选择菜单会滞留相应的时间。若修改为0。则不会出现多操作系统选择菜单。默认进入第一个操作系统(即[operating systems]下面的第一个操作系统)。如果修改为一个负整数或一个大于等于1000的正整数。系统认为此值无效,多操作系统选择菜单滞留时间将为无穷。
default=*** 这个等号后面的为默认进入的操作系统的路径,格式为[operating systems]下面等号之前的部分。大概有两种情况:win9x系列(95、98、ME)和NT系列(NT4.0、WIN2000、WINXP)。前一种,由于Active区的问题,基本上为C:\ 后一种,遵从ARC命名规则(详见下文)。
二、接下来就进入了[operating systems]部分:
这部分的每一行都代表引导一个操作系统,每一行可分四部分:等号之前、等号、等号之后、/???
等号之后表示多操作系统选择菜单的display。随便你在英文双引号里添什么都可以。如果要填中文,比如"我的最爱!"。如果是中文的操作系统是没问题的,如果是英文的操作系统,你必须拷一个bootfont.bin文件到C盘根目录下。否则你填中文会显示乱码。有的时候,后面还会出现 /??? ,具体的有/fastdetect,表示快速引导。/console 表示虚拟控制台。等号前面的就遵从ARC命名规则了,ARC命名规则是boot.ini文件的核心。
ARC命名规则:
Multi(x)disk(y)rdisk(z)patition(a)
或Scsi(x)disk(y)rdisk(z)patition(a)
1)首先,现在的磁盘分为IDE的和Scsi的两种。我们平时家用台式机使用的都是IDE的。
若使用IDE的磁盘控制器,也使用Scsi的磁盘控制器,且主板Scsi磁盘控制器设为Enable。则使用Multi(x)disk(y)rdisk(z)patition(a)的命名格式。另外,若只有IDE的磁盘控制器,也使用Multi(x)disk(y)rdisk(z)patition(a)的命名格式。若只有Scsi的磁盘控制器,则使用Scsi(x)disk(y)rdisk(z)patition(a)的命名格式。
这里,x的值为:操作系统的boot分区所在磁盘所在的磁盘控制器,在同一类磁盘控制器下的顺序号。x从零开始计数。也就是时说当你确定磁盘控制器的顺序号以后,减去1就是x的值了。(boot分区为操作系统安装的分区。)
2)若前面使用Multi(x),则disk(y)无意义,永远为零。
若前面使用Scsi(x),则disk(y)有意义。y值标识操作系统的boot分区所在磁盘所在的磁盘控制器下,磁盘的顺序号,y值从0开始计数。
3)若前面使用Scsi(x),则rdisk(z)无意义,永远为零。
若前面使用Multi(x),则rdisk(z)有意义。z值标识操作系统的boot分区所在磁盘所在的磁盘控制器下,磁盘的顺序号,z值从0开始计数。
4)patition(a)中a从1开始计数。a值标识操作系统的boot分区在其所在磁盘中的位置。具体的,首先一个磁盘最多分为4个基本的分区,基本的分区包括primary zone(基本区)和extend zone(扩展区)。extend zone可以分出若干逻辑区。这里必须区分“基本的分区”和“基本区”。
就以我们平时使用win98启动盘中的fdisk.exe工具的分区结果举例。由于功能所限,fdisk最多只能分出一个primary zone和一个extend zone。然后再在extend zone中分出若干逻辑区。这里逻辑区的数目为直到把英文大写字母数用完为止。这里primary zone为C盘,逻辑区依次为D-Z共23个。如果使用另外的工具分出多于一个primary zone,那么,一次逻辑区就要少分一个,因为大写字母数有限。扩展区最多只有一个。
言归正传,a值标识操作系统的boot分区在其所在磁盘中的位置。那么这个位置怎么确定呢?总的原则是:先数基本区,数完之后再数逻辑区。具个例子,你的一个硬盘分了四个基本的分区,第一个、第二个是基本区,标识为C区、D区。第三个基本的分区为扩展区,里面分了四个逻辑区,依次标识为E区、F区、G区、H区。第四个也是基本区,标识为I区。你的boot区若为I区,则a值为3;若为D区,则a值为2;若为F区,则a值为5;若为H区,则a值为7。
5)\???斜杠后面的表示你的操作系统的根目录在这个分区下的相对路径和文件夹名。multi(0)disk(0)rdisk(1)partition(1)\WINNT表示我的操作系统的根文件夹名为WINNT,在第二块IDE硬盘的第一个区下的WINNT文件夹。实际上,有的同志的硬盘只有一个分区。如果还想安装双系统,比如WIN2K和WINZP。那么如果他把两个操作系统都装在C盘根目录下,就会造成两个操作系统共用Documents and Settings和Program Files文件夹的情形,如果想删除一个操作系统,很不方便。这个时候你就可以在安装第二个操作系统之前在C盘根目录下建一个文件夹,例如叫NEWOS,然后再安装的时候就选择安装新的操作系统在NEWOS文件夹下,那么你这个新的WINXP的 \???就为\NEWOS\WINDOWS。
简介 Windows 2000、Windows XP、Windows Server 2003主要依赖Boot.ini文件来确定计算机在引导过程中显示的可供选取的操作系统类别。
boot.ini在缺省状态下被设定为隐含和系统文件属性, 并且被标识为
只读文件。
当我们在电脑中安装了多系统(如Windows 98和Windows XP)之后,每次启动计算机时都会出现一个系统引导菜单,在此选择需要进入的系统后回车即可。这个引导程序名为Boot.ini,在安装Windows 2000(XP)时程序自动被安装,使用它我们可以轻松对电脑中的多系统进行引导,还可以通过该
引导文件,设置个性化的启动菜单。
Boot.ini文件位于C盘根目录下,是一个隐藏文件,在“运行”中输入“c:\boot.ini”即可启动该文件。
如果想对boot.ini文件进行修改,请这样做:
为确保在Windows Explorer中看到Boot.ini文件,
“工具”——“文件夹选项”——“查看”菜单上选择“显示隐含文件和文件夹”;更改boot.int前,右击boot.int——“属性”,去掉“只读” 。
除了直接编辑boot.ini文件外,还可以借助命令行工具bootcfg.exe对Boot.ini文件执行编辑操作,您可针对系统等待时间(Windows在选择缺省操作系统前所等候的时间)进行修改, 并在现有基础上添加新的供选项目。
如需启动bootcfg.exe工具, 请依次执行下列操作步骤:
按“Windows键+R”(也就是“开始”-“运行”),在提示框中输入"cmd"(注意,不输入引号),进入“
命令提示符”,在命令行状态下输入bootcfg可以查询当前boot.ini文件的详情。
执行bootcfg /?来查看相关参数功能。
1.自定义延迟时间
延迟时间是系统启动引导菜单后在设定的延迟时间内用户没有进行任何操作时,进入默认的操作系统。
系统默认的延迟时间为30秒,如果感觉默认的延迟时间过长,可以输入自己需要的延时时间,如10秒。
设置时,首先打开Boot.ini文件(注意要去掉该文件的隐藏、只读属性),随后在[boot loader]字段下找到“timeout=”语句,将其中的30,改为10即可。
我们还可以在“系统配置实用程序”中对其进行修改。在“开始/运行”中键入“msconfig"命令,在弹出的“系统配置实用程序”中单击“Boot.ini”标签,在“Boot.ini”界面中的“超时XX秒”项中输入需要的延时时间即可。
2.自定义显示内容
在多系统启动时,有一个操作系统选择列表,这些列表显示的是电脑中所有操作系统的名称,如:Microsoft Windows XP Professional。
我们可以对这些显示内容进行修改,加载一些个性化的设置。
打开“boot.ini”文件,找到[operating systems]字段,该字段是显示当前操作系统列表,
其格式为multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
后面引号中的部分就是系统启动时显示的内容,只要将引号中的这些内容更改为自己需要的文字即可。
3.定义默认启动系统
装了多系统后,boot.ini会将其中一个系统设置为默认启动系统,如Windows XP,在超过延迟时间后将自动引导默认的系统启动。
我们可以根据需要将默认的启动系统更改为其它的系统(如Windows 98),如果不想直接修改boot.ini文件的话,可以这样做:
右键单击“我的电脑”,选择“属性”,在系统属性对话框中单击“高级”选项,随后在下面的“启动和故障恢复”项中选择“设置”按钮,弹出一个“启动和故障恢复”对话框,单击“系统启动”项中的默认操作系统下拉菜单,选择一个需要的系统,单击“确定”即可;
也可以在“系统配置实用程序”中进行设置,选中想要设为默认的操作系统,点击下面的“设为默认”即可。
4.加载启动参数,更改启动画面
boot.ini在引导多系统启动时提供了很多的参数命令,这些启动参数可以得到不同的启动效果。
boot.ini在默认的情况下加载的是/fastdetect参数,表示启动时不检查串行口和并行口。
其实我们可以更改为其它参数,更改时首先在“boot.ini”中选择需要更改的系统列表,随后将该系统中的参数/fastdetect改为相应的参数值即可。以后再启动该系统就会加载一些设置信息或画面。我们以可以在“系统配置实用程序”中对一些参数进行设置,切换到“boot.ini”选项,先选中需要更改的系统,随后在“启动选项”下端勾选需要的启动参数即可,此对几个常用参数加以说明:
SAFEBOOT:安全启动,只启动HKLM\System\CurrentControlSetControl\SafeBoot中的驱动程序和服务,其后可跟三个参数Minimal、Network或Dsrepair。
Minimal和Network允许在网络连接下启动系统;Dsrepair要求系统从备份设备中调入活动目录的设置,还有一个选项是Minimal(AlternateShell),它让系统调入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默认的Explorer。
/NOGUIBOOT:不加载VGA驱动程序,也就不会显示启动过程和失败时的蓝屏信息。
/BOOTLOG:将日志写入Nnbtlog.txt文件。
/BASEVIDEO:使用标准VGA方式启动,这种方式主要用于显示驱动程序失效时。
/SOS:在调入驱动程序名时显示它的名称,因驱动问题而无法启动时使用比较好。
通过以上设置我们就可以轻松设置启动菜单了!
FAQ:
boot.ini文件丢失怎么办?
通过手动在C盘创建一个boot.ini文件
一般的XP下面的boot.ini文件为:
[boot loader]
timeout=10
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" /noexecute=optin /fastdetect /usepmtimer
然后把此文件保存为boot.ini文件即可。
或者,把C:\Windows\pss下的boot.ini.backup复制到C盘下,去掉.backup扩展名即可。
如果您需要更改boot.ini文件的内容,可以这样:
1. 单击开始按钮,单击控制面板,然后双击系统。
2. 单击高级选项卡,然后单击“启动和故障恢复”下的设置。
通常,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 loader)和操作系统部分(operatingsystems)两大块。在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒;default=xxxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。在操作系统部分,则列出了所有的操作系统路径和清单,以供用户选择。[1][2]
下面的列表描述了 Boot.ini 文件中数据的含义:
• “timeout”指定在选择默认的操作系统之前 Windows 等待的时间
• “default”指定默认的操作系统。
• “scsi(0)”表示主控制器(通常也是唯一的控制器)负责此设备。如果有两个 SCSI 控制器并且磁盘与第二个控制器相关联,则第二个控制器称为“scsi(1)”。
如果系统使用 IDE、增强的 IDE (EIDE) 或增强的小型设备接口 (ESDI) 驱动器,或者如果系统使用没有内置 BIOS 的 SCSI 适配器,请将“scsi”替换为“multi”。
• “disk(0)”指要使用的 SCSI 逻辑单元 (LUN)。它可以是独立的磁盘,但是大多数 SCSI 设置对每个 SCSI ID 只有一个 LUN。
• “rdisk(0)”指物理磁盘 1
• 本例中的“partition(1)”是计算机中第一个驱动器上的唯一分区。如果有两个分区(C 和 D),则分区 C 为 partition(1),分区 D 为 partition(2)。
• 包含多重引导方式的参数(如果有的话)要求检查 Winnt 文件夹以从指定的 SCSI 控制器的磁盘和分区进行引导。
• “/NODEBUG”指定没有监视任何调试信息。调试信息仅对程序开发人员有用。
• 您可以添加 /SOS 选项以在加载驱动程序时显示驱动程序名。默认情况下,OS Loader 屏幕仅显示进度点。
• “Previous Operating System on C:\”表示“上一个操作系统”是 MS-DOS,因为“C:\”是 MS-DOS 路径。