您的位置:首页 > 其它

用NT Loader实现多操作系统启动

2007-12-10 16:23 169 查看
[align=center]用NT Loader实现多操作系统启动[/align]

工作原理:磁盘的引导扇区的内容决定了系统启动的方式,但是在多系统引导的情况下,引导扇区的内容又取决于各系统安装的顺序。如果首先安装的是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引导扇区,执行正常的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的引导扇区,而是Win 95的引导扇区,它将直接启动Win 95而不是DOS。
从上面可以看出,NT与DOS以及Win 95的双引导实际上是由NTLDR根据用户的不同选择执行不同的引导扇区文件来完成的。因此,我们只要找到所有要启动操作系统的引导扇区文件即可完成多操作系统的启动。不过,还有一个小问题需要考虑,就是IO.SYS和MSDOS.SYS的更名问题。我们知道,MS-DOS和Windows 95都使用文件IO.SYS和MSDOS.SYS,为了防止冲突,启动DOS时,Win 95的IO.SYS和MSDOS.SYS将分别更名为WINBOOT.SYS和MSDOS.W40,启动Win 95时,DOS的IO.SYS和MSDOS.SYS将更名为IO.DOS和MSDOS.DOS。在DOS和Win 95双引导系统中,这些工作都是由Win 95的IO.SYS来完成的。因此,在用NTLDR来实现多操作系统启动时必须提供一种方法来完成这种更名工作,否则将不能正常启动DOS或者Win 95。幸好,NTLDR实现时考虑了这个问题,专门设置了两个开关参数:/Win 95和/Win 95DOS。
具体步骤
首先,必须做好安装前的准备工作,包括:备份硬盘上的数据(非常重要);制作NT安装磁盘(插入NT的CD-ROM,在i386目录下执行WINNT32/OX);如果需要安装Linux,那么制作Linux的Boot盘和Root盘。其次,也是最关键的一步,就是获得不同操作系统的引导扇区文件。NT就不必说了,既然是围绕NT来实现多系统引导,系统的引导扇区就是NT的引导扇区。
下面笔者主要讨论一下如何获得DOS、Win 95和Linux的引导扇区文件。
1. DOS
首先安安装DOS操作系统,然后安装NT,此时C盘根目录下的BOOTSECT.DOS文件就是DOS的引导扇区文件。
2. Win 95
在上一步的基础上安装Win 95。安装之前首先备份刚获得的DOS引导扇区文件,安装成功之后,C盘根目录下的BOOTSECT.DOS文件就是Win 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的引导扇区,下一步就是修改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″
其中/WIN95和/WIN95DOS的作用我们前面已经进行了讨论。
最终结果
在完成了所有操作之后重启系统,NT Loader将显示以下启动菜单供您选择:
″Windows NT Workstation Version 4.00″
″Windows NT Workstation Version 4.00 [VGA mode]″
″Windows 95″
″MS-DOS″
″Linux″
根据选择的不同,系统启动不同的操作系统,从而实现了多操作系统的启动。
总 结:以上方法是笔者实践经验的总结,已在多台PC机上实现,但是鉴于实际中的情况复杂多变、各个操作系统版本众多,因此众多玩家在试验时还是要小心为妙,多作备份。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  启动 操作系统 休闲