LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1063|回复: 4

[强]win+linux+freebsd+solaris六系统安装。【转】

[复制链接]
发表于 2005-4-4 16:46:44 | 显示全部楼层 |阅读模式
作者:syisyi

我的六个系统安装方法及其应用(solaris,freebsd,linux,windows98,2k,xp)

小弟这里把自己装系统的过程及考虑的事情都写下来,另外也写了一些与这个主题无关的,有些东西很简单也提了一下,是给不太了解的朋友写的,希望对这方面感点兴趣的朋友有点参考作用。

我的硬盘是80G,现在装有windows系列98,2k,xp,redhat,solaris,freebsd共六个操作系统。在分区的时候就考虑到要装多系统,所以分区的时候就计划好了。

首先,先制定出分区计划,计划我的硬盘分区如下:

Primary 1: FAT 1.8G (labelin98)
Primary 2: Solaris 8 x86 5.6G
Primary 3: Extend (剩余的全给这个扩展分区了)
Primary 4: FreeBSD 4.6G

Extend :
Reiserfs:5G redhat 系统分区
swap:300M linux交换分区
Reiserfs:4G 备用分区
FAT32 :6G 主要是装程序文件 (labelrog)
FAT32:10G(label:soft)
FAT32:10G(label:doc)
NTFS:2G(label:mydoc)
NTFS:2G win2k advance server(labelin2k)
NTFS:7G(label:server)
NTFS:5G winxp(labelinxp)
FAT32:2G(lab
el:swap)
FAT32:14G(label:vidio)

现在把考虑的事情说一下。

win98主要用于系统维护,给1.8G足够了,安装win98大约需要不到400M的空间,剩余的空间用于紧急时候存储一些东西,另外也可以利用这个空间和solaris交换文件,后面另述。之所以把这个分区划为FAT,是为了以后装DOS622考虑,因为DOS622不认FAT32,而装好了98以后,如果想再装DOS6.22,完全可以把DOS6.22装在这个分区,然后修改相应的启动文件,使98和dos622双启,这方面的技术文章在网上比较容易找到,不再另述。

把NTFS分区划在后面是为了在98和2k,xp里前面的一些分区有个统一个分区名,比如prog在三个windows系统里全是D盘,对一些应用比较方便。

之所以划出一个2G的label为swap的fat32分区,是为了这个分区在linux下挂接为可写,可以和windows交换数据,其它fat32视情况可以挂在linux下,建议为只读,防止误操作。

最后一个label为vedio的盘划在扩展分区的最后面,可以视情况以后用作扩展用途,或划定为其它类型的分区用,由于在扩展分区的最后,改变分区类型及大小时对前面系统影响最小。
  
需要准备的工具有,可以光盘启动带pqmagic的盘,diskman。pqmagic用于分区,diskman用于装完一个系统后保存分区表,以备不测时可以快速恢复。下面装完一个系统就diskman一把吧,出了事再diskman 回来。关于diskman下面就不述了。
  
首先分区,用光盘启动,进入pqmagic,按如上分区分好区,注意pqmagic不能划定solaris,freebsd及reiserfs类型的分区,在分区的时候全指定为linux native (ext2)即可,主要是为了先占个地方。
  
安装的时候,安装顺序如下:win98,redhat,win2k,winxp,freebsd,solaris,注意这里redhat一定要作一张启动盘,稍后要用到,而且,我们把grub装到mbr里,用他来引导其它操作系统。solaris最好是最后装,因为solaris要修改硬盘分区的CHS 值,装完了solaris,PQMAGIC认为硬盘参数出了错误,认不出硬盘来了。这时候启动pqmagic的时候,他会提示你是否修正,你可千万别修正,修正完了,发现硬盘就成了一个大的没分的区了,再重启可能就出事了,弄不好什么也启动不了了,我试过一次,就这一次,害我终身难忘啊,呵呵。保留改动后的CHS事实上也没什么影响,不用pqmagic不就行了,只是硬盘分区参数不规范,也不影响其它系统的启动等等,无所谓了。
  
先装win98,不用说了。再装redhat,我的redhat7.3全安装,大约占了3G的硬盘空间。然后装win2k,再装winxp,注意要先装win2k,再装winxp,否则winxp不能启动,最后还得把winxp的引导系统换到c盘去。

最后装freebsd,装freebsd的时候,不要装bootloader,保留mbr不变即可。最后用红帽那张启动软盘启动红帽,执行如下命令:

cd /boot/grub
grub
grub>root(hd0,4)
grub>setup(hd0)
grub>quit

这样就成功的把grub安装到mbr里面了,再修改一下grub的配置文件,即可完成多系统的启动。

vi /boot/grub/menu.lst
填加如下几行:
title DOS/Windows
rootnoverify (hd0,0)
chainloader +1

title freebsd
rootnoverify (hd0,3)
chainloader +1

删掉引导ntfs分区的那几行,保留引导红帽的那几行,OK,保存,reboot,至此未安装solaris其它五个系统便安装完成了。重启系统,首先是 grub菜单,如果选windows,那么便进入windows系统的启动菜单,这个菜单是c盘的引导分区及C盘根目录下的NTDETECT.COM, ntldr,bootsect.dos,boot.ini来引导的。

然后如果不愿装solaris呢,就完事了,如果你要装solaris,就往下看,提前说好了,出事别找我,呵呵,主要是solaris毛病太多,容易出事。2000年6月版的不支持大硬盘,2002月2月版的没问题了,拿2000年6月版的,认我的硬盘认成了11G多,再往下装说什么它也不干了。如果硬盘N大,那就使2002年2月版的,而且它也支持P4

solarisx86的分区号是82,linux的native分区号是83,linux的swap分区号是82,正好和solaris的分区号一样,先装solaris再装linux容易出问题,弄不好把solaris分区当swap分区给处理一下,可就惨了,所以后装吧。

注意,下面要进行一些处理,这个处理很关键。

用光盘启动,进入pqmagic,找到准备划给solaris的那个分区,现在那个分区类型是ext2,删掉这个分区,只是删除掉,让他处于未分配状态即可,应用,退出。稍后我们说这一步为什么重要。如果后来发现win2k,winxp都启动不了,自己改一下boot.ini吧。启动不了的原因就是 boot.ini文件中的这一行:multi(0)disk(0)rdisk(0)partition(13)WINDOWS="Microsoft Windows XP Professional" /fastdetect   partition后面的参数不知道给改成几了,改成正确的即可。

下面进入solaris的安装,用software 1那张光盘启动,注意不是multilangue install那张盘,那张盘老让建个x86boot分区,而x86boot分区得在主分区里,现在主分区已经没地方了。software1不用建 x86boot,直接装在一个主分区里就行了。启动系统,安装,刚删掉的那个分区安装时程序会划给solaris,到时候一看就明白了。直接一路装下去就OK了。

装完了solaris会用它的多系统引导管理器来替代mbr,也能引导win98,但是不能引导扩展分区里的东西,所以不能引导linux,那么我们还得用grub来引导。方法如上,这时候/boot/grub/menu.lst中引导solaris的代码为:

title solaris
rootnoverify(hd0,3)
chainloader +1
引导bsd的代码为
title freebsd
rootnoverify(hd0,2)
chainloader +1

细心的朋友会问,solaris不是在第二个主分区吗,应该为rootnoverify(hd0,1)呀,怎么这里写成rootnoverify (hd0,3)了?而freebsd怎么写成rootnoverify(hd0,2)了,呵呵,这里得解释一下。(以下我没有确凿的技术证据,完全是个人的推测,不知道对不对)grub是按照在mbr里四个分区应占的格子的先后顺序来引导的,我们用pqmagic删除了原来准备划给solaris的分区,然后应用,相应的它会调整mbr里的对应参数,使extend和freebsd都向前提一个格,把四个位置中的最后一个空出来,当安装solaris的时候,它把自己的分区信息就填在这个位置上了,自成变成了四个主分区中的“最后一个”了。

如果不按照上述方面,solaris在硬盘分区表中还是第二个分区,那就坏了,linux说什么也启动不了了,不信你试试吧(可能改别的地方也可以,不过我不会现在,我已经试过很多方法了,还是不行,哪位找到方法说一声)原因是什么呢, linux在启动的时候,会识别出solaris分区中的slice,将这些也视为一个分区,例如,在我按上述方式装好后,在linux下键入 “dmesg|grep hda”命令,会返回如下结果:

hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 hda13 hda14 hda15 hda16 > hda3 hda4
hda3: hda4:

如果solaris为第二个分区,那么相应的原来的红帽系统分区hda5就要变为hda9了,grub的配置菜单里怎么填,他又是怎么识别?linux的 fstab里怎么填?很麻烦的,我试了好几种办法都不能协调好,linux不能正常启动,所以只好想出这个办法来了。

有的朋友会问,把solaris直接划成第四个区不就行了?呵呵,我还真想,用2002年2月版software1刚装的时候就是想把他装在BSD那里,先不用BSD了,没想到,后来提示,得在1024柱面以前,要不不往下进行了,哎,没办法呀。不过原先20G硬盘的时候用2000年6月版的装过,也是 software1安装,安装在15G之后的最后一个分区里,挺正常的。具体我也搞不清,反正这样装是肯定没问题,至于1024柱面的问题,搞不清。

下面说一下solaris里面访问win98那个区的问题,用如下命令即可挂下win98的分区

mount -F pcfs /dev/dsk/c0d0p1 /mnt

这样/mnt里面的内容就是原来的win98分区了,交换数据挺方便的。

solaris下如何挂接一个ISO文件呢?不少朋友网络条件挺好,从网上下载的solaris安装文件都为ISO文件形式,其实只要把 software1刻成光盘,其它的仍然在windows分区里就行了。需要的时候,把那个ISO拷到win98分区里,然后启动solaris再把那个 ISO挂到一个目录下就可以了,我装software2,language package,asia那几张盘的时候就是用的这个方法。

具体要用lofiadm命令,software1装好了就有这个命令,这个命令把一个ISO文件模拟成一个块设备。

假设software2安装ISO为c:SOL_8_202_IA_2.iso,如下命令序列可完成安装过程。

进入solaris

#mount -F pcfs /dev/c0d0p1 /mnt
#lofiadm -a /mnt/SOL_8_202_IA_2.iso
/dev/lofi/1 /*这一行是上一行命令的处理结果,不是我键入的*/
#mkdir /tempiso
#mount -F hsfs -o ro /dev/lofi/1 /tempiso
#cd /tempiso
……自己安装吧,已经是ISO里面的内容了。
#umount /tempiso
#lofiadm -d /dev/lofi/1

现在就把SOL_8_202_IA_2.iso与/dev/lofi/1分离了,同上方法可以安装其它ISO,lofiadm的具体用法请参见man lofiadm

呵呵,现在solaris就装好了。试试手吧。


在红帽下挂接windows分区,注意键入以下选项codepage=936,iocharset=gb2312或codepage=936,iocharset=cp936,否则不能正常显示中文。

当时redhat选reiserfs主要是由于宿舍的同学晚上爱看片,不过晚上到点停电,系统老没事掉电可不好玩,于是整了个reiserfs文件系统,省得文件系统容易崩溃了。

redhat7.3的内核好像不支持solaris的文件分区,挂不上,估计重新编译内核就行了。原来在蓝点2.0里面用下面的命令可以挂上solaris的分区,对于上面的grep hda的结果,用如下命令可以挂接上solaris的s7分区

mount -t ufs -o ufs=sunx86 /dev/hda22 /mnt/s7

上面的划分区的时候有一个NTFS分区server,是给vmware和virtual pc用的,在winxp里,virtualpc里装上solaris(划给32M内存),freebsd(minimal选项,划给16M内存), redhat(字符终端,划给16M内存),vmware里装上路由型linux(划给8M内存,双网卡,起网关作用),mandrake等。 virtualpc不能装双网卡,vmware可以,自己组个小局域网玩吧。这个分区建议用NTFS,为什么呢,我的virtualpc里的 solaris装好了,六张盘全让我塞进去了,包括GNUtools等,对应的virtualpc中的solaris的硬盘文件为 4,405,129,216 字节,不过启用了NTFS的压缩功能,占用硬盘空间为:1,603,891,200 字节。FreeBSD为358,735,359 字节,占用硬盘为160,432,128 字节。类似,硬盘利用率高啦,得益于NTFS的压缩功能。

访问solaris的图形界面在winxp下装个exceed吧,省点虚处理机的资源,呵呵。

如果是小硬盘,只想装dos6.22,win98,solaris,建议C盘为FAT区,先装win98于Cindows目录,然后用 software1装solaris,这时候启动管理器是solaris的,开机后启动界面第一项就是win98的启动。装好了重启机器,用 dos6.22的启动盘启动,装dos622于C盘,然后修改win98的一些配置文件即可完成双启,具体可参见下文: http://www.lixiang.gd.cn/computer/system/Win98-dos6.22/

这种装法我没试过,不知道dos6.22会不会修改C盘的引导扇区,真怕修改,就先把C盘引导扇区保存下来,装完了再恢复就行了。

可以用一下下面的命令:

在还没装dos6.22的时候里,进入win98的command.com

c:>debug
-l 100 2 0 1
-n c: esttest
-r cx
CX 0000
:200
-w 100
Writing 00200 bytes
-q

c: esttest就是C盘的引导扇区。

恢复的时候可以如下,先进入command.com:
c:debug
-n c: esttest
-l 100
-w 100 2 0 1
-q

debug全干了,不用别的工具.

如果只是为了学汇编而用dos6.22,建议可以在vmware或virtualpc里装dos6.22,全屏了以后和裸机上装dos6.22感觉一样,原来学汇编的时候我就是在vmware里装的dos6.22,省了不少麻烦。



:help  :help  :help
太强了,有点受不了
发表于 2005-4-5 15:21:34 | 显示全部楼层
经典之作哈!顶一下
回复 支持 反对

使用道具 举报

发表于 2005-4-5 21:33:52 | 显示全部楼层
不错的帖子,里面很多地方都很详细,比如:

title solaris
rootnoverify(hd0,3)
chainloader +1
引导bsd的代码为
title freebsd
rootnoverify(hd0,2)
chainloader +1


mount -F pcfs /dev/dsk/c0d0p1 /mnt


c:>debug
-l 100 2 0 1
-n c: esttest
-r cx
CX 0000
:200
-w 100
Writing 00200 bytes
-q


呵呵,这些小地方的累积,比专题学习来得更容易接受一些,支持楼主。
回复 支持 反对

使用道具 举报

发表于 2005-4-11 17:32:26 | 显示全部楼层
顶一下,我准备搞个win200/xp与linux混装,可以给我点具体的帮助吗?
回复 支持 反对

使用道具 举报

发表于 2005-4-11 18:40:55 | 显示全部楼层
先装温的,然后ghost,再装linux。最好把l装到最后一个盘。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表