『第 5 楼』:
使用 LLM 解释/回答一下
四.多系统共存的实现:
操作系统的更新是相当快速的,从DOS到WIN32、95、98、ME、XP?虽然说系统一直在不断进步发展着,但其实每个操作系统都有各自的发展空间,也各有其的优势和劣势。比如WIN98和WIN ME,它们的普遍特点是多媒体性能佳,支持软硬件多,但缺点是系统不够稳定;而诸如WINNT、WIN2000等系统,则有比较好的稳定性和操作性,但对系统要求比较高,不适合一般的初级使用。这时候,很多朋友都会有"鱼和熊掌不可兼得"的感叹。那么,能否将各种操作系统都安装在一台计算机上,并根据自己的需要任意选择呢?当然可以呀,这就是我们接下去要讲的多系统共存。
要让多系统共存,首先要了解一些基本的原理。在上文的分区篇中,我们大概的谈了一下,这里再做一番比较深入的剖析:
操作系统是如何引导的呢?当系统加电自检通过以后,硬盘被复位,BIOS将根据用户指定的启动顺序从软盘、硬盘或光驱进行启动。以从硬盘启动为例,系统BIOS将主引导记录读入内存。然后,将控制权交给主引导程序,然后检查分区表的状态,寻找活动的分区。最后,由主引导程序将控制权交给活动分区的引导记录,由引导记录加载操作系统。
对于DOS和WIN9X等操作系统而言,分区引导记录将负责读取并执行IO.SYS。Windows9x的IO.SYS
首先要初始化一些重要的系统数据,然后就会出现我们非常熟悉的蓝天白云。这时候,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。如果系统中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码。这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本代码。
对于WINNT/2000来说,则由是NTLDR这个程序负责将其装入内存,或者让用户选择非WINNT/2000操作系统。引导装入程序和多重引导都由一个具有隐含属性的初始化文件boot.ini控制。在boot.ini中包含有控制计算机可用的操作系统的设置,引导的缺省操作系统以及应当等待多少时间等信息。
那么,我们的机会在哪里呢?俗话说的好,见缝插针。从计算机引导过程的描述中大家可以发现,我们可以人为的加一干预的地方只有两处,一是设置物理盘的引导次序,二是修改主引导程序的分区表。
(1) 多硬盘的多系统共存:如果你采用的是多硬盘的计算机,而且每块硬盘都安装有不同操作系统时,建议你通过在CMOS中指定硬盘的启动次序,实现多操作系统的共存。由于操作系统之间互不影响,所以这种方法完全不受兼容性等其他因素的影响。
(2) 单硬盘的系统共存:而如果你只有一块硬盘,并也想在上面安装多个操作系统而相互不受影响,你则必须采用修改主引导程序和分区表的方法来实现。一般有两种方法。一是修改主引导记录,在主引导记录的最后用JMP指令跳到自己的代码上来,从而控制计算机的引导过程;另外一种方法是修改主分区第一个扇区的引导代码,以实现多系统的共存。
注意事项:接下去,我们将教大家如何进行多系统共存的设置。不过,在开讲之前,有一些基本的准则还是要告诉大家的:
1.在计算机上安装另外一个操作系统之前,最好能先制作一张启动盘以备意外之需。
2.每个操作系统必须安装在一个独立的磁盘驱动器或者分区上。
3.如果你要在DOS、WIN95和WIN 2000之间进行多重启动配置,应该最后安装WIN 2000。否则,启动WIN 2000所需要的一些重要文件可能会被覆盖。对于WIN 98和2000之间的双重启动配置,安装操作系统不必按照特定的顺序,对于在WIN 2000和LINUX之间的双重启动配置,应当先安装WIN 2000,并为LINUX保留所需要的磁盘分区。
4.要进行双重启动配置,应该使用FAT文件系统。尽管支持在双重启动中使用NTFS,但这样会提高文件系统的复杂程度。
5.不要在压缩盘上安装WIN 2000,除非该压缩盘是由WIN 2000完成的;如果计划建立WIN 95或WIN 98的双重启动,则不必要对已经压缩的盘进行解压缩。
6.在设置了双重启动的计算机上,如果希望应用程序在两种操作系统上都可以运行,必须在两种操作系统中都进行安装,无法在操作系统之间共享应用程序。
以上的6点意见,是我们在进行多系统分区是总结出来的。不可能完全,还望大家能予以补足。
现在,该谈谈实现多重引导的工具的使用了。实现多重引导的工具很多,除了上文介绍的PartitionMagic外,如System Commander, Linux自带的lilo,和WindowsNT自带的OS Loader等等等是非常不错的多重启动设置软件。
先来谈谈WINNT自带的OS Loader程序:
我们举个实际的例子来说明OS Loader的作用。比如,我想在硬盘上同时装上Windows98,windowsNT和Redhat Linux, 怎样才能实现多重引导呢?
你可以先装Windows98,然后安装WindowsNT.WindowsNT装完以后,OS Loader也就自动装上了.这时你的系统其实已经可以进行多重引导了.
但要想在这个基础上再加一些操作系统的话,还需要再做一些工作. 如果足够细心的话,在装完WindowsNT以后,你会发现在C盘的根目录下多了一个名叫bootsect.dos的文件,大小为512字节,这是原来Windows98安装在主分区第一个扇区里的引导代码. 在安装WindowsNT的时候,NT先把这个扇区的内容存到一个文件(即bootsect.dos)里,然后换上他自己的引导代码,也就是OS Loader. 在进行多重引导的时候,如果选进入Windows98, OS Loader会把bootsect.dos读进内存然后执行,从而引导到windows98. 在这里,我们要做的工作很简单,就是想办法把OS Loader的代码读出来, 存到文件里去,也就是要把主分区第一扇区的512字节读出来. 在DOS下,这可以用debug来做,也可以自己写一个小程序来实现. 但是如果装Linux的话,问题就十分简单了. Linux里有一个现成的实用程序可以用来直接读写扇区.
安装Linux有两点要注意的地方.
第一:在安装lilo的时候,一定不要把lilo装到MBR里去,因为现在是想用OS Loader来做多重引导.应该把lilo装到主分区的第一扇区里(注意,这里的主分区指的不是C盘,而是安装Linux的那个分区).
第二:应该做一张启动软盘(bootdisk),以便你能够进入到Linux里. 因为现在lilo没有装在MBR里,暂时还不能直接从硬盘引导到Linux. 现在,装完Linux后,用刚刚做的Linux启动软盘启动,引导到Linux系统. 假设Linux装在了第一个硬盘的第六个分区,那么在提示符下可以这么敲:
dd if=/dev/hda6 of=bootsect.lnx count=1 回车
这句话的意思是把第一个硬盘第六分区(/dev/hda6)的第一个扇区的数据读到文件bootsect.lnx里.
参数说明:
if:in file(输入文件)
of:out file(输出文件)
count:读写次数
同样可以把C盘第一扇区的数据读到文件bootsect.wss里:
dd if=/dev/hda1 of=bootsect.wss count=1
这就是OS Loader的引导代码./dev/hda1就是dos下的C盘. 把这两个文件copy到C盘的根目录(当然也可以在其他地方)下. 再在C盘根目录下找到boot.ini, 除掉只读属性后用文本编辑工具打开.
在[operating systems]段加上:
C:\bootsect.lnx="Linux"
存盘退出,再把boot.ini的只读属性加上. 这样就实现了用OS Loader引导Linux.
以后再装别的操作系统时,有可能把OS Loader覆盖掉, 这时只要再进到Linux里,使用dd命令:
dd if=/dev/hda1 of=bootsect.new count=1
把新装操作系统的引导代码存到bootsect.new里然后:
dd if=bootsect.wss of=/dev/hda1 count=1
把OS Loader恢复回去. 再在boot.ini里类似这样加上一行:
C:\bootsect.new="new system"
就可以引导新装的操作系统了. 顺便提醒一下,每次重新编译了Linux的内核(kernel), 都应该把lilo再读出来:
再把bootsect.lnx copy到C盘根目录.否则使用了新内核的Linux很有可能引导失败. 用OS Loader不是必须要装WindowsNT,可以直接把bootsect.wss写到C盘的第一扇区里, 最后,再把boot.ini, ntldr, Ntdetect.com 拷贝到C盘根目录下,一切就大功告成了。
2.利用LILO实现多系统共存:上文我们已经提到了LILO。LILO(Linux Loader)是LINUX自带的一个优秀的多系统引导管理器,使用它可以很方便地引导一台计算机上的多个操作系统。具体方法如下:
通常在安装LINUX的时候,其中有一个步骤就是安装LILO。根据安装的提示,可以很方便的完成。首先,我们启动LILO。先要增加LINUX的分区。这时系统会给出三个选项:
MBR Use the Master Record
Root Use superblock of the root linux partition
Floppy Use a formatter floppy disk in the boot drive
它们分别表示将LILO安装在主引导记录、LINUX分区或软盘上。一般的情况下,如果你安装了要求分区必须激活的操作系统如WINDOWS等时,就必须将LILO安装在MBR上,这样才能正常的同时引导两个操作系统。
安装程序会接着询问LILO启动时等待的时间,一般选默认值就可以了,这样LILO的启动设置就完成了。返回主菜单,这时候安装程序会提供一个多操作系统的安装菜单。先安装LINUX的启动选项。选择相应的启动设备,紧接着键入操作系统的标识符,就完成了系统的安装。接着,在安装其他操作系统的启动选项。等所有安装完以后,每次启动计算机时,都会出现LILO提示,按SHIFT键,在"Boot:"提示符后输入欲引导的操作系统的名字,就能进入相应的操作系统。如果忘了操作系统的名字,只需要按TAB键盘,再按SHIFT,系统会就给出所安装的操作系统列表。你选择一个按回车就可以了。
3.利用System Commander 2000使用多系统共存:
作为一个外挂的应用程序,System Commander 2000的功能当然要强大的多。它可以说是目前做的最好的多操作系统引导工具。不过,由于其是纯DOS界面的操作,多少让人觉得有点落伍,这点无疑是 Partition Magic略胜一筹。不过,在功能上,System Commander 2000可是毫不逊色于人的,我们就来看一看。
System Commander 2000的安装非常简单,虽然这个工具是一个在纯DOS环境下使用的工具,但是程序的安装可在Windows环境下运行,直接运行Setup.exe程序,之后连续按下任意键,切换说明界面,并输入注册信息,即可轻松实现软件的安装。此外。在软件的安装过程中,程序会建议用户创建程序提供的机器启动引导盘。(如上图)程序提供的机器启动引导盘包括"Utility Disk 1"和"Restart Disk 2"两张,其中前者包括了管理硬盘分区的程序文件,以及备份文件。后者包括了有关当前的系统引导信息,如果操作过程中由于断电或复位而导致的引导失败可使用这个备份纪录恢复机器的引导纪录。
安装结束后,机器会重新启动。这时,System Commander 2000会自动扫描当前机器的磁盘分区信息和引导信息,并对其进行备份,然后根据当前信息创建机器引导启动菜单"OS Selection Menu"。在这个菜单中程序不仅提供了系统启动引导菜单,而且直接提供了一个界面,其菜单条中的"OS Wizard"表示激活程序的操作系统安装向导OS Wizard、"Setup"表示设置程序的运行方式,其中包括了七个设置项目,其中包括设置启动菜单的默认引导项和自动启动延时、是否允许使用鼠标、设置用户登录口令、设置程序可以控制的引导系统文件存放位置等、对启动引导菜单中的项目排序及添加/删除菜单项、设置启动菜单项的描述文字与显示图标。
在机器引导启动菜单"OS Selection Menu"界面下,如果选择第一个启动菜单项,可引导机器启动到未安装程序时的操作系统。对于Windows系统而言,另外的两个菜单项分别是启动到DOS环境下,和使用软盘启动。
设置暂停、卸载/恢复暂停程序提供的启动引导菜单
System Commander安装导系统后,会自动设置接管机器的启动并设置相应的启动菜单,但是如果你认为暂时不需要使用它提供的功能,可暂时将其中止,具体方法是:首先切换到纯DOS环境下,切换到程序的安装目录,在命令行下键入"scin.exe"并击回车键确定,此时程序会提供了一个菜单,其中包括如下内容:
Installation Notes:程序的安装说明。
Disable or Remove System Commander:暂停或删除System Commander。
Enable/Update System Commander:恢复暂停或更新System Commander。
Special Options:特殊功能菜单。
Troubleshooting:疑难解答。
V Communications Info:程序的出品者V Communications公司信息。
Program exit:退出程序。
选择第二个菜单项,程序会给出一个关联界面,在其中提供了三个菜单项,其中"Temporarily Disable System Commander" 表示暂停使用程序引导系统菜单,"Remove System Commander"表示删除程序,"Return to main menu"表示返回上一界面。直接选择第一个菜单项,然后单击回车键确定即可。在此提醒您一点,由于System Commander会自动记忆最后一次机器引导纪录,所以当禁止程序的启动引导后,系统将默认使用最后一次引导进入的操作系统作为机器当前使用的操作系统。所以在使用该项功能之前,应该首先设置好机器的引导操作系统。
如果需要恢复暂停使用的System Commander,界面中的第二个菜单项"Enable/Update System Commander"其中的"Enable System Commander"表示恢复使用程序,"Update files from download"表示使用下载的升级文件更新当前的软件。移动光标到第一个菜单项上击回车键确认即可。
使用Special Options菜单
移动光标到"Special Options"菜单项上击回车键,程序会给出关联的设置界面,在该界面中提供的菜单项包括:
Make Utility Diskettes:创建程序的多操作系统引导盘。其关联界面与tu-0a是一样的,在此不再重复。
Change MultiFAT Option:更改多分区引导设置,在其关联界面中包括了"Install MultiFAT option"安装多分区管理功能和"Skip MultiFAT support"跳过多分区管理支持两个项目。如果选择前者,程序会给出一个关联界面,其中提供了"Use existing group"使用当前的启动配置菜单和"Delete current group"删除当前的启动配置菜单。
Specify Non-Compressed Boot Drive:指定非压缩驱动器。在其关联界面中只有一个设置项目"Enter boot drive letter (C to Z) and press Enter",在其中选择硬盘中的非压缩分区,之后单击回车键确定。
Alter Current Boot Record Serial Number:更改当前引导纪录序列号。在该项目的关联界面中提供了"No, skip any change"和"Yes, alter the boot record"两个选项。改变引导纪录序列号是针对由于新安装操作系统而导致的引导纪录改变设置的。
Restore Boot Record:恢复硬盘的引导纪录。
Diagnostic Checks:硬盘引导纪录诊断。在其关联界面中提供了硬盘分区表检测"Partition Checks"、引导扇区检测"Boot Record Checks"、文件存取校验"File Access Verification"、引导区病毒检测"Virus Detection"、返回上级菜单界面"Return to Prior Menu"等菜单项,根据自己的需要选择即可。
Transfer System (Advanced SYS):使用程序提供的系统传送工具从软盘传送引导系统到硬盘分区C:,其可支持的操作系统包括DOS和Windows 9x。在其关联菜单中提供了"Automatic Transfer"自动传送、"Prompted Transfer"提示确认传送等两个菜单项。
Main Menu:返回程序主菜单界面。 由于以上各项功能菜单都是单步操作,使用鼠标选择相应的菜单项目,然后单击回车键确定即可完成相应的操作,非常简单,具体步骤在此就不再给出了。
|