巧用NTLDR实现多重启动 工作原理 磁盘的引导扇区的内容决定系统启动的方式，在多系统引导的情况下，引导扇区的内容又取决于各系统安装的顺序。如果首先安装的是DOS，引导扇区就是DOS引导扇区，运行时将载入IO.SYS，完成正常的DOS启动工作。 如果在DOS上又安装了Windows NT，那么原来的DOS引导扇区将被NT的引导扇区覆盖，但是为了实现与DOS的双引导，NT并未将其内容删除，而是保存在一个名为BOOTSECT.DOS的文件中。这样NT引导扇区运行时不再装入IO.SYS，而是装入NTLDR，后者将显示一个启动菜单，提示您是启动NT还是启动DOS。如果选择了启动DOS，那么NTLDR将运行文件BOOTSECT.DOS，执行正常的DOS启动工作。
如果此后又安装了Windows 95，那么它在保持NT的启动扇区不变的情况下，用自己的引导扇区重写文件BOOTSECT.DOS，同时安装自己的IO.SYS和MSDOS.SYS，而把DOS的IO.SYS和MSDOS.SYS更名为IO.DOS和MSDOS.DOS。此时启动菜单中的相应项也由“MS－DOS”变成了“Microsoft Windows”，如果选择它，NTLDR同样执行BOOTSECT.DOS，但此时这个文件的内容已不是DOS的引导扇区，而是Windows 95的引导扇区，它将直接启动Windows 95而不是DOS。
由此可见,NT与DOS以及Windows 95的双引导实际上是由NTLDR根据用户的不同选择执行不同的引导扇区文件来完成的。因此，我们只要找到所有要启动操作系统的引导扇区文件即可完成多操作系统的启动。不过，还有一个小问题需要考虑，就是IO.SYS和MSDOS.SYS的更名问题。MS－DOS和Windows 95都使用文件IO.SYS和MSDOS.SYS，为了防止冲突，启动DOS时，Windows 95的IO.SYS和MSDOS.SYS将分别更名为WINBOOT.SYS和MSDOS.W40; 启动Windows 95时，DOS的IO.SYS和MSDOS.SYS将更名为IO.DOS和MSDOS.DOS。在DOS和Windows 95双引导系统中，这些工作都是由Win 95的IO.SYS来完成的，在用NTLDR来实现多重启动时必须提供一种方法来完成这项更名工作，否则将不能正常启动DOS或者Windows 95。NTLDR对这个问题的解决方法是专门设置了两个开关参数：/WIN95和/WIN95DOS。
具体步骤
首先，必须做好安装前的准备工作，包括：备份硬盘上的数据（非常重要）；制作NT安装磁盘（插入NT的CD－ROM，在i386目录下执行WINNT32/OX）；如果要安装Linux，制作Linux的Boot盘和Root盘。
其次，也是最关键的一步，就是获得不同操作系统的引导扇区文件。NT就不必说了，既然是围绕NT来实现多系统引导，系统的引导扇区就是NT的引导扇区。下面主要讨论一下如何获得DOS、Windows 95和Linux的引导扇区文件。
1. DOS
首先安装DOS，然后安装NT，此时C盘根目录下的BOOTSECT.DOS文件就是DOS的引导扇区文件。
2. Windows 95
在上一步的基础上安装Windows 95。安装之前首先备份刚获得的DOS引导扇区文件，安装成功之后，C盘根目录下的BOOTSECT.DOS文件就是Windows 95的引导扇区文件，将其保存为BOOTSECT.W40，并将备份的DOS引导扇区文件重命名为BOOTSECT.DOS。
3. Linux
安装Linux，然后在Linux系统下运行以下命令：
dd if=/dev/hda? of=/mnt/c－drive/bootsect.lnxbs=
512 count=1
其中/dev/hda?是Linux的引导分区，/mnt/c－drive是C盘在Linux中的mount点。然后更改/etc/lilo.conf文件，增加一行：
boot=/mnt/c－drive/bootsect.lnx
让lilo将Linux的引导扇区写到文件BOOTSECT.LNX中。
由于Linux安装时重写了C盘的引导扇区，NT将不能正常启动，所以必须对其进行修复。具体步骤为：
首先用DOS启动盘引导系统，然后运行下列命令：
fdisk /mbr
删除主引导记录，再用NT安装盘修复NT以恢复NT的主引导扇区。
至此，我们获得了所有要启动操作系统的引导扇区文件，且修复了NT的引导扇区，下一步就是修改NT的BOOT.INI文件，实现多操作系统引导。
修改之前的BOOT.INI大致如下所示：
[Boot Loader]
Timeout=30
Default=Multi(0)disk(0)rdisk(1)partition(1)\WINNT
[Operating Systems]
multi(0)disk(0)rdisk(1)partition(1)\WINNT=″Windows NT Workstation Version 4.00″
multi(0)disk(0)rdisk(1)partition(1)\WINNT=″Windows NT Workstation Version 4.00 [VGA mode]″ /basevideo /sos C:\=″Microsoft Windows″
在其后增加如下几行：
C:\bootsect.w40=″Windows 95″ /WIN95
C:\bootsetc.dos=″MS－DOS″ /WIN95DOS
C:\bootsect.lnx=″Linux″
在完成了所有操作之后重启系统，NTLDR将显示以下启动菜单：
″Windows NT Workstation Version 4.00″
″Windows NT Workstation Version 4.00 [VGA mode]″
″Windows 95″
″MS－DOS″
″Linux″
根据不同的选择，系统将启动不同的操作系统，从而实现了多操作系统的启动。
(林 毅）