精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖电脑技术〗>>● WinNT系统>>安装和设置>>OS Loader专区>>巧用NT Loader实现多操作系统启动

主题:巧用NT Loader实现多操作系统启动
发信人: woohyuk()
整理人: ipaq(2001-05-28 13:06:21), 站内信件



  我们知道,磁盘的引导扇区的内容决定了系统启动的方式,但是在多系统
引导的情况下,引导扇区的内容又取决于各系统安装的顺序。如果首先安装的
是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机上实现,但是鉴于实际中
的情况复杂多变、各个操作系统版本众多,因此众多玩家在试验时还是要小心
为妙,多作备份。另外,如果您有什么疑问或者高见的话,欢迎来信交流,笔
者的E-mail是[email protected]




--
We are the future!!!!!!H.O.T 
Woohyuk最好的,Do or die. 

※ 来源:.月光程序代码网 http://www.moon-soft.com.[FROM: 61.135.248.51]

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]