详解多操作系统共存 齐鸣 2000年 第39期   随着大硬盘逐渐地流行,众多用户希望在硬盘中配置多套操作系统来满足工作、娱乐、学习等不同需求。目前看来,在众多的操作系统中Windows 98、Windows NT4和Linux使用频率最高。Windows 98堪称是一套完美的家用娱乐平台,看看VCD、玩玩游戏、上网冲浪都会相当出色。Windows NT4是一套经典的NT服务器级操作系统,也是一套性能优秀的工作平台,将Office系列组件、Photoshop、VB、VC等安装在NT4上会发挥出远胜于Windows 98平台上的性能。Linux是如今的“明星级”操作系统,它是UNIX系统在PC机上的克隆版,是一套多任务、多用户、遵循GNU通用公共版权协议的免费操作系统,一旦玩转了它,你会得到一种彻底控制电脑的无上满足感,立志成为电脑的高手的各位玩家怎么能够放弃它呢?至于Windows 2000,虽然已经推出了一段时间,而且性能出色,但由于其庞大的身躯和贪婪的胃口,不幸得到了“胖杀手”的“美誉”,在用户心目中的地位还有待进一步提高,在本文中不作讨论。 #1 (一)几种操作系统所支持的文件系统   Windows 98支持FAT16、FAT32两种文件系统。   Windows NT4支持FAT16、NTFS两种文件系统。   Linux支持多种文件系统,如:Minix、ext、ext2、xiafs、HPFS、VFAT、FAT16、FAT32、NTFS等,Linux下可以使用mount命令将这些文件系统的分区装载上,成为其可以直接访问的目录。至于Linux自身,一般选择ext2文件系统。 #1 (二)Windows NT4的启动过程 这个问题初看与我们要讨论的主题无关,实则不然。Windows NT4作为一套庞大的操作系统,虽然有着与Windows 98近似的界面,但是内核却大相径庭,它拥有自己独特的多重操作系统引导程序(OS Loader),绝非Windows 98那么“单纯”。用户打开电脑启动NT时会发现速度比较慢(相比Windows 98而言),其实系统可没闲着,BIOS 会根据 CMOS 上的设定,到开机硬盘的第0轨道去读取、执行 MBR(Master Boot Record)信息。MBR俗称“主引导区”,它的作用是读取磁盘分区表(Partition Table)里面所设定的 Active Partition(活动分区),如果 MBR 找不到 Active Partition,那MBR就会在屏幕上显示像Missing Operating System 等等错误讯息,所以如果你的 Windows NT无法正常开启,而你又在屏幕上看到类似这样的错误讯息,原因大多就是出在此了。随后NT操作系统会陆续载入系统文件:最关键的启动文件是 ntldr,它肩负着启动 Windows NT 系统的任务,整个 Windows NT 系统的载入过程都是由它所主导。它只能存在与C盘中。   除此以外还有以下几个文件应该关注:   (1)Ntdetect.com,它是Windows NT 开机时用来检测硬件信息的程序。(2)bootfont.bin,如果用户使用的是中文版,这个程序就大大的关键,它提供了WindowsNT 中文版开机时的中文字。(3) Boot.ini,它记录了Windows NT 启动时的选项内容。(4) Bootsect.dos,如果你利用 NT OS Loader 对 DOS 与 Windows NT 进行多重引导,那么也必须有这个文件。(5)Ntdetect.com,它用来检测电脑的硬件配置情况,并将全部信息反馈给 ntldr。在经历了上述文件之后就是加载Ntoskrnl.exe、驱动程序文件、Hal.dll、系统配置等一系列文件。如果上述几关都通过了,那么进入Windows NT4的世界就不难了。 #1 (三)Linux系统的多重操作系统引导程序LILO LILO是Linux下的通用引导管理器,可以引导多种操作系统,由于Linux的支持使得其功能极为强大,而且可以随时改变。在/etc/lilo.conf中感兴趣的用户可以自行配置。需要说明的是OS/2、NT4等操作系统虽然都有自己优秀的多重引导系统,但必须占据主引导区(MBR),显得过于霸道。Linux则不然,LILO不仅可以存在于主引导区(MBR)中,还能够以二级引导器的形式存在,占据Linux根分区的引导记录中,这一点为我们安装多重操作系统提供了可能。 #1 (四)实战 #1 第一场战役:在Windows NT上安装Windows 98。   系统分区(活动分区C:)必须为FAT16,而不能是NTFS格式,否则Windows 98不能读取NTFS分区。如果你的分区已经不是FAT16格式,可以选用pqmagic(硬盘分区魔术师)等第三方软件进行转换。由于Windows 98产生于NT4之后,所以它对NT的引导菜单是友好的,就是说它不会替代该磁盘引导程序代码,而是在引导菜单(boot.ini)上加入如下新的选项:C:\=″Microsoft Windows 98″,这一点十分重要,它意味着在启动时可以自由选择Windows 98或NT。对于初级用户可以在安装Windows 98之前使用RDISK.EXE创建NT的紧急修复盘。还有一点必须声明:Windows 98不能从Windows NT直接安装,所以如果你有安装DOS就从DOS启动(它的引导菜单将在Windows 98安装后被Windows 98取代),然后从Windows 98的安装盘中运行SETUP.EXE。如果你没有安装DOS,则须从有支持你光驱的驱动程序的DOS启动盘中启动计算机,然后运行SETUP.EXE。安装开始后,用户只允许在FAT分区上选择安装路径。 #1 第二场战役:在Windows 98上安装Windows NT 安装完Windows 98再安装NT的唯一需要是系统分区(C:)不是FAT32 格式,因为Windows NT无法访问FAT32的文件格式。如果活动分区是FAT32格式,则你需要将其转换成FAT16。依然可以使用上文中提到的pqmagic(硬盘分区魔术师)吧!为了开始NT的安装,先用Windows 98启动系统,在NT安装中照常运行E:\i386\WINNT.EXE(假设用户光驱为E盘)。NT安装程序会自动检测Windows 98的安装,并将其加入NT引导菜单。NT正常安装时,要创建三张引导磁盘,十分麻烦,可以考虑使用E:\i386\WINNT.EXE/B 命令省去创建磁盘的工作。   前两场战役小结:无论是先安装Windows NT还是先安装Windows 98,都不会影响NT的启动流程,毕竟同是微软的产品,它们可以很好地兼容。在任何一种情况下,都是NT的引导程序先取得引导权,Windows 9x可以自动识别NT的存在,在安装时不会覆盖NT的引导记录(注:如果用Windows 9x的启动盘执行了SYS C:命令,则Windows NT就不能启动了,因为NT引导记录将被修正)。当一切完成后我们可以用文本编辑器打开c:\Boot.ini,我们发现它很像DOS下多种引导的Config.sys文件格式:   [Boot Loader]   timeout=3   Default=C:\   [Operating Systems]   C:\=″Microsoft Windows 98″   multi(0)disk(0)rdisk(0)partition(2)\WINNT=″Windows NT Server Version 4.00″   multi(0)disk(0)rdisk(0)partition(2)\WINNT=″Windows NT Server Version 4.00 [VGA mode]″ /basevideo /sos   上述的BootLoader部分很容易理解,timeout指出了多引导时等待的时间,Default指出了下列的系统中缺省的引导系统,下面的那些是系统引导信息,NT术语称为“ARC路径”(Advanced RISC Computing规范路径),很形象,对照屏幕上的启动菜单看一看就会明白。 #1 第三场战役:在Windows 98上安装Linux 目前Linux的版本众多,在此以Red Hat(红帽子)为例说明。首先必须给Linux留下足够的磁盘空间(最好是未分区的空间),下限是1GB,如果有2~3GB的空间就比较理想了。请在系统CMOS菜单中设置成CDROM引导,然后塞入Linux光盘,重启系统,直接进入Linux安装环境。安装Linux至少需要建立两个格式完全不一样的分区,即:SWAP交换区和NATIVE主系统区。SWAP交换区的大小通常应为内存大小的两倍,但是根据笔者的经验,不管内存多大,64MB交换区是最合适的了(当你设置为64MB时,系统可能会自动设置为70MB,不用管)。NATIVE主系统区最好在1GB以上,比如说Red Hat Linux 6.0在完全安装时需要1124MB。在安装快结束时将配置LILO系统,打起精神来!将LILO安装在主引导区(MBR)中,给Windows 98启动选项定一个名字,(Linux默认的为DOS)这样当重启系统时会出现LILO提示符,用户可以自由选择Windows 98或Linux两套系统。 #1 第四场战役:在Windows NT4上安装Linux 当你经历完下一场战役时,这个问题就迎刃而解了! #1 第五场战役:Windows 98+ Windows NT4 + Linux 或许这才是用户最心仪的选择。首先我们需要一套第三方的多系统引导软件,如:System Commander 2000 、BootMagic 2.0等等。这类软件着实不少,但笔者主张使用名气大的、成熟的。因为它的稳定性、可维护性对于整个系统来说至关重要,使用不成熟的软件随时有系统崩溃的危险。笔者就有过切身体会,怎一个“惨”字了得!请首先将系统所有的分区均设为FAT16(每个分区最大2GB),然后在系统分区(C盘)上安装Windows 98,然后将Windows NT4安装在D盘上。安装NT4成功之后请为它添上版本4.0以上的Pack包,使之能够识别大硬盘。这时再从光盘开始安装Linux,在配置LILO系统时和上文不同,千万不要选择将LILO放在主引导区(MBR)中,这样会破坏NT的OS loader。选择Linux主分区的根目录吧。(其实选项只有两项,选择非MBR那项就是了。)最后在C:安装System Commander 2000,在该软件中将Linux所在的分区激活,将其设置成bootable(可引导),系统选单上会出现两项:Windows和Linux,并配有漂亮的图标。如果选择Windows项会使用NT4的OS loader引导MBR,用户可以再进一步选择Windows 98或Windows NT4。如果选择linux项,位于linux根分区的引导记录中的LILO会开始工作,将用户带进美好的Linux世界。 #1 (五)附文: 在多操作系统引导管理工具方面,目前比较好的工具是PowerQuest公司的BootMagic和V Communications,Inc的System Commander,虽然前者在Windows环境下运行,但是软件容量相对较大,而System Commander2000版是一个非常小巧的工具,可以支持在一台机器中安装多达100个以上的不同操作系统,它可以支持在一个硬盘分区中安装32个以上的操作系统、在14个不同的驱动器下安装56个主引导硬盘分区等等,此外程序支持从A驱或B驱启动,即便是系统CMOS中禁止使用软盘启动。System Commander 2000全面兼容Windows 9x/NT/2000、Linux、OS/2 Warp、NetWare、Solaris以及其的操作系统,程序可以在FAT或FAT32环境下运行。虽然是DOS程序,但是它不是常驻内存的程序,引导操作系统启动后程序就退出内存了,并不会占用任何内存空间。System Commander 2000可以很好的支持磁盘压缩,但是必须保证系统的C盘没有压缩,并且程序必须安装到未压缩的C磁盘分区中。