六个系统安装方法及其应用

weixin_38050362 2003-09-17 10:36:14

轉載自"中华Unix技术论坛"
http://www.cnunix.net/bbs/dispbbs.asp?boardID=2&ID=1332

鳴謝:gang5415 版主


在x86平台上,我们没有玩过,我贴一片帖子供你参考吧。

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

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

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

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

Primary 1: FAT 1.8G (label:win9
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 主要是装程序文件 (label:prog)
FAT32:10G(label:soft)
FAT32:10G(label:doc)
NTFS:2G(label:mydoc)
NTFS:2G win2k advance server(label:win2k)
NTFS:7G(label:server)
NTFS:5G winxp(label:winxp)
FAT32:2G(label: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于C:windows目录,然后用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,省了不少麻烦。

好运!



----------------------------------------------
QQ: 28793313
信箱:sjg@c163.net
...全文
17 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
《Delphi 深度编程及其项目应用开发》 作 者: 李存斌 汪兵 编著 丛书名: 万水软件项目应用与实例开发丛书 出版社: 中国水利水电出版社 出 版: 2002-9----------简 介 本书是在总结作者多年Delphi开发经验的基础上编著而成。 全书分为基础篇和应用篇。基础篇结合示例论述了Delphi的深度编程技术,其中包括9章,分别为:理解Windows消息、进程与线程、自定义组件的编写、文件操作、创建DLL应用程序、两层数据库应用程序、多层数据库应用程序、Socket编程、串口编程;应用篇结合物资管理信息系统项目应用开发技术和经验,详细阐述了一般管理信息系统软件通用模块的开发,其中包括10章,分别为:物资管理信息系统概述及其总体框架设计、物资管理信息系统后台数据库设计、应用服务器的实现、客户端应用程序的设计、动态连接应用服务器的实现、通用权限管理模块的设计、通用查询组件和报表模块的制作、通用基础数据维护模块的设计、物资管理信息系统业务操作模块的设计、综合查询模块的设计。读者在具有一定Delphi知识的基础上,通过本书的学习,可快速提高Delphi的编程能力和实际开发水平。 本书适用于具有初步编程能力的读者,也可作为高校高年级学生毕业设计的指导书。中国水利水电出版社网站(www.waterpub.com.cn)上包括了书中示例和较为完整的物资管理信息系统的源代码文件,为读者的学习提供方便,同时也为相关软件开发人员的实际应用开发提供捷径和参考。 ----------目 录 丛书前言 前言 基础篇:Delphi深度编程技术 第1章 理解Windows消息 1.1 消息概述 1.2 Windows消息工作机理 1.3 Delphi的VCL消息系统处理原理 1.4 发送消息 1.4.1 Perform() 1.4.2 SendMessage()和PostNessage() 1.4.3 消息的发送 1.5 消息处理 1.6 消息过滤 第2章 进程与线程 2.1 进程与线程 2.1.1 进程概述 2.1.2 进程的直接创建 2.1.3 列举系统打开的进程 2.1.4 线程概述 2.2 进程间通讯(IPC) 2.2.1 利用WM_COPYDATA消息实现进程间通讯 2.2.2 利用内存映射文件实现进程间通讯 2.3 TThread对象 2.3.1 线程的创建 2.3.2 线程的挂起和恢复 2.3.3 线程的终止 2.3.4 与VCL同步 2.4 线程同步 2.4.1 临界区(CriticalSection) 2.4.2 互斥(Mutex) 2.4.3 信号量(Semaphore) 2.5 进程的优先级别 2.5.1 进程的优先级类 2.5.2 相对优先级 2.6 后台多线程数据查询实例 第3章 自定义组件的编写 3.1 组件的基本概念 3.1.1 属性 3.1.2 方法 3.1.3 事件 3.1.4 拥有关系 3.1.5 父子关系 3.2 组件创建实例 3.3 组件的高级技术--属性编辑器和组件编辑器 3.3.1 组件的属性编辑器 3.3.2 组件的组件编辑器 3.3.3 带有属性编辑器和组件编辑器的自定义组件实例 3.4 创建对话框组件 第4章 文件操作 4.1 文件的基本操作 4.1.1 文本文件 4.1.2 有类型文件 4.1.3 INI文件 4.1.4 无类型文件 4.1.5 文件的复制 4.2 内存映射文件 4.2.1 内存映射文件的应甩 4.2.2 映射文件的使用 4.3 内存映射文件的应用 第5章 创建DLL应用程序 5.1 DLL概述 5.2 DLL的创建 5.2.1 DLL项目文件 5.2.2 Exports关键字的使用 5.2.3 DLL中的变量 5.2.4 DLL实例:动态DLL中的窗体 5.3 DLL的调用 5.3.1 静态调用 5.3.2 动态调用 5.4 DLL的入口函数和出口函数 5.4.1 进程/线程的初始化和例程的终止 5.4.2 DLL入口/出口示例 5.5 利用DLL创建插件程序 5.5.1 插件程序的设计思想 5.5.2 插件应用程序的创建 5.5.3 创建调用插件程序的主程序 第6章 两层数据库应用程序 6.1 关系型数据库 6.1.1 关系型数据库概述 6.1.2 结构化查询语言(SQL) 6.2 数据库的连接 6.2.1 基于BDE的数据库连接 6.2.2 基于0DBC的数据库连接 6.2.3 基于AD0的数据库连接技术 6.3 TSession元件 6.4 1 DahBase组件 6.4.1 TDataBase组件的使用 6.4.2 用配置文件动态设置BDE 6.5 数据访问组件 6.5.1 TTable组件 6.5.2 TQuery组件 6.5.3 TStoredProc过程 6.6 数据感知组件 6.7 事务 第7章 多层数据库应用程序 7.1 一个简单的多层应用系统 7.1.1 服务器端应用程序的建立 7.1.2 客户端应用程序的建立 7.2 多层应用系统处理数据的原理 7.2.1 多层应用系统的结构 7.2.2 存取数据的运作原理 7.2.3 更新数据的运作原理 7.3 容错处理和负载平衡 7.4 Active Form 第8章 Socket编程 8.1 WinSock基础 8.1.1 TCP、UDP和IP协议 8.1.2 套接字(Socket) 8.1.3 客户/服务器模式 8.1.4 面向连接的协议套接字的调用 8.1.5 面向无连接协议的套接字的调用 8.2 利用Winsock API实现Socket编程 8.2.1 常用WinSockAPI函数 8.2.2 利用WinSockAPI实现Socket编程 8.3 利用组件实现Socket编程 8.3.1 TClientSocket组件 8.3.2 TServerSocket组件 8.3.3 远程抓屏示例 8.4 通讯中间件的制作 8.4.1 磁盘队列的实现 8.4.2 客户端和服务器端发送接收磁盘队列数据的套接字的建立 8.4.3 中间件的简单应用 第9章 串口编程 9.1 串口通信的基础知识 9.1.1 同步通信和异步通信 9.1.2 波特率和数据传输率 9.2 串口通信API 9.2.1 DCB数据结构 9.2.2 与串口通信相关的函数 9.3 利用API函数创建串口通信示例 9.3.1 发送数据部分设计(向串口写数据) 9.3.2 数据部分设计(从串口读数据) 9.3.3 程序的具体设计和实现 9.4 利用SPC0MM组件实现串口通信编程 9.4.1 SPCOMM组件的安装 9.4.2 SPCOMM组件的属性、方法和事件 9.4.3 利用SPCOMM通讯组件实现串口通讯的实例 应用篇:物资管理信息系统项目应用开发 第10章 物资管理信息系统概述及其总体框架设计 10.1 系统总体结构设计 10.2 物资管理信息系统需求定义和业务流程图 10.2.1 仓储管理 10.2.2 计划管理 10.2.3 合同管理 10.2.4 物资管理系统的业务流程 第11章 物资管理信息系统后台数据库设计 11.1 关系型数据库概述 11.1.1 关系型数据库 11.1.2 物资管理信息系统数据库的建立 11.2 物资管理信息系统数据结构的设计 11.2.1 权限管理数据结构的设计 11.2.2 仓储管理数据结构的设计 11.2.3 计划管理数据结构的设计 11.2.4 合同管理数据结构的设计 11.2.5 基础设置数据结构的设计 第12章 应用服务器的实现 12.1 创建应用服务器的实例 12.2 状态区编程 12.3 动态数据库的连接 12.4 远程数据模块的建立 第13章 客户端应用程序的设计 13.1 客户端应用程序系统流程和系统功能 13.1.1 系统流程 13.1.2 系统功能 13.2 构建客户端应用程序框架 第14章 动态连接应用服务器的实现 第15章 通用权限管理模块的设计 15.1 系统登录的设计 15.2 权限设计表中数据的维护 第16章 通用查询和报表组件的制作 16.1 通用查询组件的创建 16.2 通用报表模块的制作 第17章 通用基础数据维护模块的设计 17.1 界面设计 17.2 代码实现 17.2.1 以目录树的格式显示部门档案数据 17.2.2 利用目录树导航数据 17.2.3 利用目录树操作数据 17.2.4 按表格的标题排序 17.2.5 打印部门档案 第18章 物资管理信息系统业务操作模块的设计 18.1 数据表的设置 18.2 收料单据主表显示区 18.3 具体的材料明细表显示区 18.4 数据操作区 第19章 综台查询模块的设计 19.1 数据源的设置 19.2 窗体样式设计 19.3 代码实现 19.3.1 查询数据 19.3.2 打印数据 19.3.3 全部浏览----------
内容概要:本文详细介绍了 Microsoft Visual C++ 运行时库(vcredist_x64.exe 和 vcredist_x86.exe)在 Windows 系统中的作用、安装步骤及维护要点。运行时库为 64 位和 32 位应用程序提供必要的动态链接库(DLL),确保依赖 VC++ 编译的软件正常运行。文章首先解释了运行时库的重要性及其与软件兼容性的关系,随后详细描述了 64 位和 32 位运行时库的安装准备、具体步骤、常见问题及解决方法。此外,还探讨了运行时库与 Windows 系统的深度关联,包括对系统性能的影响和应用程序的稳定性提升。最后,文章提供了运行时库缺失问题的诊断和修复实践,以及预防问题的策略。 适合人群:Windows 系统用户、IT 专业人员、软件开发者和运维工程师。 使用场景及目标:①帮助用户理解运行时库的作用及其对软件运行的重要性;②指导用户正确安装和配置 64 位和 32 位的 vcredist 安装程序;③提供故障排查和修复运行时库问题的方法;④确保应用程序在不同 Windows 版本上的兼容性和稳定性。 其他说明:本文不仅涵盖了安装和维护运行时库的具体操作,还提供了理论背景和技术细节,帮助读者全面理解和应对运行时库相关问题。建议在安装和维护过程中,结合实际应用场景,确保系统的稳定性和应用程序的正常运行。

477

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧