Win98、NT和Linux的共存
--------------------------------------------------------------------------------
现在绝大多数人装的都是windows98,但是为了学习还需要安装windows NT以及Linux,那么怎样实现他们的共存呢?并且最好是在现有windows98、windowsNT之上安装Linux。现在对整个的安装策略作一介绍,不当之处,请大家指正。
在安装之前我们首先要了解一下硬盘主导扇区中的一个重要数据区--分区表。一个硬盘最多只能有四个主分区,这一点是大家要清楚的。现在我们来假设一下硬盘的使用情况:在机器买回来后我们将硬盘划分了4个逻辑盘,分别是C、D、E、F,而且整个硬盘空间已划分光了。那么,在这种情况下,我们一般使用了几个主分区呢?答案是两个:一个是主DOS分区,另一个是扩展DOS分区。C盘就是主DOS分区,而扩展DOS分区还包含着3个逻辑盘D、E、F。
之后的某一天你又要安装Windows NT,如果你的所有逻辑盘都被格式成FAT32格式,那么对于安装Windows NT来说简直是一场灾难。如果用win98引导,再安装Windows NT,那么在没有复制文件的时候就告诉你行不通;如果你制作了三张NT安装软盘,安装是能进行下去的,不过在选择安装分区时,你会发现NT找到了两个不能使用的FAT32分区,如果还要进行安装,那你得将扩展分区删除掉,然后重新分区,也就是你的D、E、F盘将不复存在。那么,遇到这种情况怎么办呢?有办法,使用System Commander软件(好象Linux光盘上都有)。通过SC你可以将FAT32格式重新转换成FAT16,不过这时FAT16格式的逻辑盘空间不能超过1.7G。
通过上面烦琐的步骤后,你终于将NT安装到了D盘上。如果你使用的是FAT16格式,可能很轻松的完成了NT的安装。后面你又要安装Linux了,又将会面临一场痛苦。
首先,在安装到Linux分区时你突然发现硬盘没有空间了,不能创建Linux分区,你看到是hda1、hda2、hda5、hda6、hda7几个分区,你仍然面临将D、E、F盘删除的窘境。不过,这次你可能有经验了,使用System Commander,将F盘删除掉,如果空间还不够将E盘也删除掉或将E盘割出一块空间。这样,你终于有了非DOS的剩余硬盘空间了。在安装Linux的时候,我们假设你只划分了一个根/分区和一个交换分区swap。那么,到此你已将四个主分区全部用光了,前两个是DOS分区,后两个是Linux分区。在Linux分区中,第一个是Linux主分区,另一个是Linux扩展分区。如果你还要分出个/home或/usr等,这些都是建在Linux扩展分区上的。
一波刚平,一波又起。当Linux安装到LILO时,你又遇到麻烦了,是安装到主引导记录(mbr),还是安装到其他地方呢?为了和NT共存,你不能将LILO安装到主引导记录中,在这里你只能将LILO安装到hda3,即Linux的主分区中。不要忘了,安装过程中一定要制作一张Linux引导盘,否则Linux不能被引导。
Linux已顺利安装完了,下面就是怎样实现windows98、windows NT、Linux系统的引导,在这里我建议使用NT的OS Loader,因为它占据了主引导记录。那么,怎么将Linux的引导信息加入到NT的引导菜单中呢?这时,在安装Linux过程中的引导软盘起作用了。用软盘将Linux引导起来,以root登录到Linux,进行以下操作:
1.将C盘mount上
mount /dev/hda1 /mnt #要根据你C盘的格式用相应的命令参数
2.将LILO引导信息写成一个文件
dd if=/dev/hda3 of=/mnt/bootsect.lnx bs=512 count=1
3.修改NT的boot.ini
vi /mnt/boot.ini
在文件最后添加一行:
C:\bootsect.lnx = “Linux”
4.修改NT的分区位置
将所有multi(0)disk(0)rdisk(0)partition(2)\WINNT改成:
multi(0)disk(0)rdisk(0)partition(4)\WINNT
说实在的,我也没弄明白明明是第2个分区,安装过程中也没有改分区表,多了两个Linux分区后怎么要改成分区4?这也是我安装过程中遇到的真正困难,我当时改成5试了一下没成(心想D盘是第5个分区),也没有改成4去试(其实做梦都没想到会是Linux扩展分区号)。没办法我重新安装了NT,之后才发现boot.ini中被系统改成了4。所以,如果你在安装后发现NT启不来了,说:winnt\system32\ntosknl.exe没找到,不要紧张,修改根目录下的boot.ini,从1~4试着改partition(?)中的数据,肯定会成功的。
原作者:zhujk@china.com
来源:(Linux一千零一Yea)