Solaris的发展过程简介
Solaris是在UNIX的发展过程中逐渐发展起来的。1969年AT&T贝尔实验室开发出了第一套UNIX操作系统,尽管这只是个单用户的操作系统,却标志着UNIX的诞生。UNIX发展的下一个里程碑是在1973年,当时在贝尔实验室的工作人员利用C语言重新编写了UNIX内核程序,这也是为什么C语言总是和UNIX联系在一起的原因。即使在今天,尽管已经有许多其他编程语言可以选择,但大多数UNIX应用仍是采用C语言进行编写的。
到了1975年,伯克利大学发布了它的第一个UNIX软件,这个软件称为BSD。BSD UNIX在UNIX的历史发展中有相当大的影响力,被许多商家采用,成为很多商业UNIX的基础,而Sun公司的Solaris正是在这个BSD UNIX的基础上发展起来的。与此同时,AT&T贝尔实验室也在不断改变他们的商用UNIX版本。直到AT&T贝尔实验室在吸收了BSD UNIX已经有的各种优先特性,并结合其本身特点,推出了UNIX System V版本之后,才形成了BSD UNIX和UNIX System V两大主流UNIX系统。
20世纪80年代初期,UNIX System V仍然主要由AT&T所拥有。但到1993年初,AT&T将开发UNIX系统的实验室(USL)卖给了Novell公司,UNIX即为Novell所拥有。后来,Novell将自己的UNIX改名为UNIXWare,而将UNIX商标赠送给X/OPEN——一个由众多UNIX厂商组成的联盟,这样这个联盟内的所有成员均可以使用UNIX商标。从此以后,UNIX不再是专有产品了。
System V对于UNIX平台的主要贡献包括: 增强了Bourne shell功能,包括shell函数;支持STREAMS和TLI网络库;远程文件共享(RFS);改善了内存分页;应用了二进制接口(ABI)。
由于Solaris最初是由伯克利大学的BSD派生出来的,因此,SunOS 4.x(常被称为Solaris1.x)的命令风格与其他的BSD非常相似,只是由于后来改用了System V的版本4(SVR4),才使得SunOS 5.x(也就是Solaris 2.x)发生了变化。
SVR4与BSD UNIX的主要差别可以总结如下: Root脚本在System V中为/etc/init.d,在BSD中为/etc/rc.d。默认shell在System V中为Bourne shell,在BSD中为C shell。文件系统数据库在System V中为/etc/mnttab,在BSD中为/etc/mtab。内核名称在System V中为/UNIX,在BSD中为/vmUNIX。打印系统在System V中为lp,在BSD中为lpr。字符串函数在System V中为memcopy,在BSD中为bcopy。终端初始化在System V中为/etc/inittab,在BSD中为/etc/ttys。终端控制在System V中为termio,在BSD中为termios。
而SunOS 5.x也逐渐被Solaris 2.x名称代替,在Solaris 2.6以后,Solaris 7(SunOS 5.7)开始改变它的版本编号方法,它以过去的小版本编号为基础,采用了单一版本号的形式。也就是说,Solaris的版本序号顺序为2.5,2.6,7,8,9,10。
Sun操作系统版本发展的时间顺序如下: 1971年,第一个UNIX版本发布。1982年,Sun选择UNIX操作系统用于其第一个工作站。1983年,SunOS 1.0发布。1984年,Sun发明NFS技术。1985年,SunOS 2.0支持NFS技术。1988年,SunOS 4.0支持其第一个SPARC处理器和使用虚拟内存技术。1992年,Solaris 2发布,基于UNIX SVR4,并支持其第一款多处理器工作站。1992年,Solaris 2.1增加支持线程技术。1993年,Solaris 2.2增加支持对称多处理器技术。1995年,Solaris 2.5支持UltraSPARC工作站/服务器。1997年,Solaris 2.6支持1TB大文件。1998年,Solaris 7采用64位技术,支持Java。2000年,Solaris 8增加支持安全的企业级Web应用。2002年,Solaris 9服务提供平台,U5版支持CMT技术,并增加Sun Java企业系统。2005年,Solaris 10虚拟化OE,增加N1 Grid Container,DTrace等。2006年,Solaris 10增加了ZFS文件系统。
其中,Solaris 10是最具有里程碑意义的。从此,Solaris走向了开源,代码不再由专门的Sun公司的操作系统专家所编写。也就是说,下一个版本的Solaris将是由开源社区的众多自由软件开发者编写的。
[ 本帖最后由 sun029 于 2007-10-4 18:10 编辑 ]








最新回复
sun029 (2007-9-24 13:33:22)
演示文稿2.jpg
网络就是计算机.jpg
我们坚守自己的理念
网络就是计算机
(THE NETWORK IS THE COMPUTER ™
自大约25 年前Sun 成立之日起就一直坚守着这样一个理念:网络就是计算机。
这出自这样的一个信念:连接所有资源,无论它的创建者是谁;连接所有的人,无论他们身在何处。这是一个无以伦比的技术与人完美结合的理念。
所有这一切都归属“共享”和“创新”,以期设计和研发最好的技术,推动“参与时代”的大步进展。
Sun 公司简介
1982年,Sun Microsystems公司诞生于美国斯坦福大学校园。Sun 公司1986 年上市,在NASDAQ的标识为SUNW。
创立伊始,Sun的创立者就率先提出“网络就是计算机”的独特理念。这一理念指引着Sun各项业务的发展,为全球各个重要市场注入活力,驱使Sun成为向全球用户提供最具实力的网络计算系统、软件、服务和解决方案的领先供应商。
Sun是世界上最大的UNIX系统供应商。主要产品有基于UltraSPARC 和AMD Opteron 处理器的系列服务器、工作站,Sun Ray 桌面系统、StorageTek 存储设备等硬件系统,Solaris和Java软件,以及Sun Grid等各类服务,并以其高度灵活性、缩放性、安全性和可用性等优异特性赢得全球各行业客户的青睐。2005年12月,Sun基于其突破性“酷线程”专利技术推出新的“绿色经济型”服务器产品线,开启了网络计算的新时代。
Sun是信息技术的领先提供商,这缘于她拥有:以网络计算为核心的产品线,由解决方案所引领的销售模式,作为核心技术的基础设施系统,具有革新性的组织机构,研发上的巨大投入,与合作伙伴共赢的合作策略,以及以客户为中心的发展战略。
在我们这样一个越来越以网络为中心的世界上,Sun共享创新和社团共建的思想体系处于新一代网络计算—“参与时代”的最前沿,这为Sun的全球市场开拓创造了难得的机遇。
Sun的足迹遍及全球100多个国家和地区,在美国,欧洲、中东、非洲和亚太等地区,Sun的市场份额都在攀升。广大客户对Sun的钟爱,预示着她在新的世纪中更加美好的前程。
Sun 公司的互联网网址为www.sun.com
Sun 公司的中文网址为www.sun.com.cn
自成立之初,Sun就率先提出了开放标准、互操作性、异构和参与等思想,希望在开放社区的基础上,将世界各地的人们联系在一起。这些在当时是很激进的思想,但经过多年后,这些思想已在世界各地开花结果。
多年来,我们研发了很多技术和产品,对各个行业提供支持,从移动电话和智能卡,到超级计算机和互联网。与此同时,我们还与全球的社团共享我们的技术。
今天,我们正在为“参与时代”注入新的活力。作为“信息时代”的后续时代,“参与时代”越来越强调互动和协作。在“参与时代”,网络的意义在于创造商业机遇,而不再局限于为消费者或企业提供服务。我们为客户提供他们所需的突破性产品、技术和服务,以帮助客户把握住这些商业机遇。
Solaris™ 操作系统是首屈一指的UNIX® 操作系统,我们已在opensolaris.org上发布了它的源代码,实现与全球的共享。
在短短10年间,Java™ 一跃成为全球最大的编程平台。目前它拥有450多万开发人员,致力于下一代应用程序的开发。
最新推出的StorageTek品牌,为客户提供了业界最全面的存储和数据管理解决方案,以确保信息的安全存储、智能化管理和便捷的访问。
Sun Fire™ 系统基于UltraSPARC ® 和AMD Opterton™ 处理器进行构建。Sun 系统凭借更低的价格、更好的性能、更高的能效等特点,从根本上改变人们对工业标准服务器的认识。
Sun Grid是我们的理念的真正实践。利用它,客户可以根据需要购买计算和存储能力,而无需支付与资产所有权、系统管理、服务支持和不动产等相关的长期成本。
今天,“网络就是计算机”这一理念得到了前所未有的真正体现。我们坚信,这一理念将继续作为我们一切业务的核心。
通过共享寻求业务的发展 我们恰恰喜欢这个看似矛盾的观点
我们认为,思想没有必要成为私有财产。在自由、开放的市场环境中,最好的思想必然会胜出。因此,我们分享思想、专业知识、技术和机遇,打破阻碍沟通和参与的壁垒,促进经济价值的增长。
每天都有更多的参与者进入网络这个大家庭。互联网上的服务不断推陈出新。市场需要一流的基础技术。而Sun,正好有能力满足所有这些要求。
在“参与时代”,企业的首席信息官肩负着双重重任,他们不仅要提供安全的、高质量的服务,还要借助无所不在的网络、新的业务模式和遍及全球的访问渠道,努力开拓新的商机。那么,首席信息官们就需要:管理爆炸式激增的数据、加强业务流程的智能化、确保安全性和对法规的依顺性、提高能源效率,以及加大基础设施的灵活性。
我们专注于通过以下四条原则帮助客户实现他们的目标:
简单化与标准化
凭借现有的专业技术,使用标准化组件,设计高度灵活、安全和模块化的网络基础设施。
使IT成为一种竞争优势
帮助企业按照其业务的优先级,赢得他们IT投资的更佳效果。
提高开放性和互操作性
我们充分利用开放标准,为客户提供更大的选择空间和掌控能力,让他们以低成本进入社团,零障碍退出社团。
坚持安全性和对法规的依顺性
我们在所有的解决方案中提供身份识别管理功能,确保安全性和对法规的依顺性。
无论您是需要运行超高速模拟程序,还是保护国家安全,是需要提供最新无线、宽带服务,还是处理在线交易,Sun都能提供适合您的解决方案,帮助您创建睿智企业。
开放社区 开放标准 开放源代码 我们将技术奉献给全球
我们坚信,社区建设可以发展市场、推动创新;与开发者社区共享闪光的思想乃是创造商机的关键。
“Sun把它独特的‘共享’市场的战略看得非常重要。为此,Sun比以往任何时候都更加强化了竞争对手之间的合作。Sun与EMC、IBM、 Microsoft之间达成的协议表明,Sun正在迈向一个新的发展阶段 —— Sun与这些竞争对手共享的不仅仅是代码、资源,甚至还包括客户。Sun的客户将拥有更多的选择,而很少需要客户做出妥协或面对整合的难题。”
摘自《Forrester Research》2005年6月号“Sun借助共享不断奋争(Sun Keeps on Fighting
— By Sharing)”一文
作者:Michael Goulde、Richard Fichera和John R. Rymer
如果每天都有450 多万人操着一种语言,那么它还能称得上是代码吗?
开发者是开放社区的中坚力量。他们创造着各种新的可能性,他们启迪灵感,推动创新。
人人参与,事事参与,处处参与
对企业而言,“参与时代”将推动规模经济的发展:更多的参与者,更大的信息流,更多的成本节约。
Sun在网络计算领域拥有超过23 年的经验,无论客户需要服务器、桌上型电脑、软件,还是存储设备,Sun系统都能在设计上保持一致性。我们采用技术解决他人使用人力解决的问题,因此既省时又经济。
这虽不是一场人气竞赛,但却有了20,000个合作伙伴,我们因此有希望获胜。
我们携手合作伙伴,一起推出能够获得成效的创新技术、集成的解决方案,还有各种产品和服务。
在“参与时代”,合作无疑是致胜的关键。任何一家供应商都没有足够的资源独揽一切,提供端到端的一流解决方案。
·Sun与AMD结成战略联盟,共同为企业提供高性能的符合行业标准的x64 服务器。
·Sun与微软携手攻克技术难关,以实现平台的互操作性。
·Sun与富士通扩展两公司间长达二十年的战略合作关系,为所有可能的网络计算任务提供一流的服务器。
·Sun与甲骨文公司二十多年来肩并肩地为世界各地的客户提供安全的、可靠的和可扩展的企业级解决方案。
·Sun和SAP共同帮助客户部署基于服务的企业级业务解决方案,使企业强化与客户、供应商、合作伙伴,以及员工之间的各种联系。
·Sun与谷歌(Google)公司联手,推动下一代Web技术和工具的创建与推广,促进全球生态环境的健康发展。
[ 本帖最后由 sun029 于 2008-4-30 09:08 编辑 ]
sun029 (2007-9-24 13:33:57)
1987年 Sun进入中国市场
1992年 Sun在中国正式打入商用计算机市场
1994年 Sun公司网页www.sun.com正式启用
1995年 Sun的Java技术问世,开始在中国推广
1996年 Sun推出Ultra系列工作站/服务器产品
1997年 Sun与中国教育部开始联合举办一年一度的“中国教育及科研计算机应用与网络研讨大会”
1998年 Sun推出Java 2软件平台
1999年 Sun创建“Sun中国开发商联盟”(现更名为“阳光联盟”)
Java三大平台J2EE、J2SE、J2ME问世(现分别更名为Java EE、Java SE、Java ME)
2000年 Sun出席“2000中国企业高峰会议”,承诺积极参与中国未来技术与经济发展
Sun在全球及中国发布iForce计划
Sun设立上海外高桥保税库,表明Sun对中国市场的长期投入和高度重视
2001年 Sun在北京成立“Sun中国工程研究院”Sun被指定为第21届大学生运动会信息系统服务器的唯一
供应商
Sun推出Sun Fire服务器系列产品
2002年 Sun的J2SE 1.4 产品通过中国新的中文编码国家标准GB18030 检测
Sun将西北五省(除陕西省外)并入成都办事处管理,从而成为Sun西部区,以应对中国西部大开
发的市场需求
2003年 Sun隆重推出Sun Java软件系统
Sun公司、中国联通与北京振戎融通通信技术有限公司结成“UniJa技术联盟”
Sun大中华区Java技术联盟成立
2004年 Sun的UltraSPARC IV处理器问世
2004 Sun亚太区网络应用博览会在上海举行
Sun发布Sun Java Studio Creator新版本,提供对简体中文的支持
Sun发布J2SE 5.0,该版本被认为是Java平台和编程语言近10年来最重大的升级
Sun赞助并承办全国第七届Java技术及其应用学术交流会
2005年 Sun发运Solaris 10操作系统,这是Sun发展历史上的一个新的里程碑。至今,该操作系统注册许
可数已逾430万
Sun与中国教育科研网格计划(ChinaGrid)启动合作
Sun宣布其整条x64产品线采用双核技术
Sun Solaris源代码在CDDL(通用开发和发布许可)协议下对外开放
Sun完成对StorageTek公司的并购
2005年 Java 中国开发者大会(2005 JavaChinaConference),在北京、上海、成都、广州和香港等九大中
国城市同步举行
Sun出台采用酷线程技术的UltraSPARC T1处理器,并基于该处理器推出Sun Fire T1000/T2000
服务器 —— 业内首款“绿色经济型”系统
Sun宣布Java企业系统等软件全部免费提供,并将之与Solaris OS 集成为Solaris Enterprise
System,这是市场上唯一的具有综合性的开放的基础软件平台
Sun宣布OpenSPARC项目,开源UltraSPARC T1处理器的设计要点
2006年 Sun发布预装Solaris 10 OS的Sun Ultra工作站(包括业内速度最快的x64 工作站)
Sun发布开源NetBeans 5.0 IDE版本,对基于JavaSE、Java EE 和 Java ME 的应用程序的创建提
供支持
Sun 公司大中华区总裁余宏德:
“Sun的‘网络就是计算机’的理念将会永续发展。我们将利用创新来消除数字鸿沟,我们希望未来每一个人都能够连接上网络,且他们的成本几乎为零。Sun将继续以为中国国民经济信息化建设做出贡献为己任。在此,我代表Sun公司向广大中国用户亲切致意,祝你们事业有成。”
Sun 中国公司总经理薛耀焜:
“今天,我们高兴地看到,Sun的理念、产品和技术已深深植入中国IT产业发展的土壤之中。在网络计算系统、处理器技术、软件产业、移动通信、开源技术和下一代互联网等领域,Sun已成为中国企业客户的首选。Sun将继续把它的技术优势与成功经验带给中国,同时秉承其一贯服务于用户的宗旨,与合作伙伴一起开拓中国市场,为中国国民经济和社会发展贡献我们的力量!”
我们都是邻里,共生于一个真正大的社区。
当人们通过网络连接在一起时,他们共享创新、交流思想,解决种种难题。这种人人的参与,在世界各地创造了思想、信息、机遇和价值 —— 包括社会和经济两个范畴的东西。
Sun 把人们联系在一起,资源共享,实现共赢。
北京办事处:
北京南礼士路66 号建威大厦16 层
电话:(010) 6803-5588
传真:(010) 6802-6616
邮编:100045
上海办事处:
上海宝庆路1 号百富勤广场18 楼
电话:(021) 3406-4708
传真:(021) 6466-1227
邮编:200031
广州办事处:
广州市天河北路183 号大都会广场4004-4015 室
电话:(020) 8755-5900
传真:(020) 8755-5901
邮编:510620
成都办事处:
成都市人民南路二段18 号川信大厦11层C 座
电话:(028) 8619-9333
传真:(028) 8619-9332
邮编:610016
[ 本帖最后由 sun029 于 2007-9-24 13:35 编辑 ]
sun029 (2007-9-24 13:44:43)
1. Q: Solaris 的系统配置文件一般在什么地方?
A: 可以查看/etc/system文件,里面有一些solaris启动时默认加载的选项,包括
共享内存大小等的设置。
2. Q: 在solaris中,用户默认的Shell在什么文件中规定?
A: 可以查看/etc/passwd中,用户默认的shell在这里规定。
3. Q: 如果solaris不幸忘记了root密码,如何解决?
A: 可以有如下两种情况
1. 工作站只有root用户,无其他用户。
2. 工作站除了root用户以外,还有其他的用户
1. 如果连接了网络,我们可以采用远程缓冲溢出的方法,但是这样的方法不属
于“经典”方法,且有的远程缓冲溢出具有一定的破坏性,不建议使用。还
有一种方法就是采用SUN公司自带的光盘采取引导,建议采取这种方法:
1. boot cdrom -s
2. fsck /dev/dsk/c0t0d0s0 (取决于根分区的设备)
3. mount -F ufs /dev/dsk/c0t0d0s0 /mnt
4. TERM=ansi; export TERM
5. 编辑/mnt/etc shadow文件,把root对应的口令去掉。
6. 重启后的root的口令为空。
2. 如果还有普通用户,方法可以采用本地缓冲溢出,这种方法虽然破坏性小,
但是也有损毁硬盘引导区的危险,建议采用“文件连接”错误是获得root权
限,这种方法没有什么危险性。
4. Q: 有时候用vi编辑器的时候,显示窗口过大,如何处理?
A: 只需要用鼠标拖曳终端窗口,使其缩小,即可解决。
5. Q: 共享内存大小如何设置?
A: 在system文件的最后一行加入Set shmsys:shminfo_shmmax=XXX
/etc/set shmsys:shminfo_shmmin=XXX
这里的XXX是代表共享内存的大小。单位:字节
共享内存一般为内存的一半
例如内存为512M
设置应为512/2*1024*1000=262144000
6. Q: root用户的配置文件在什么地方?
A: root用户的配置文件和其他用户的配置文件有些不同,它在/etc/profile文件
中规定。
7. Q: SUN solaris 在远程X-win pro下无法以root进行登陆,如何解决?
A: 直接以root在终端上登录的时候,执行/etc/default/login脚本。在这个脚本
中限制了在远程终端上不能直接以用户root登录,如果想这样,修改此脚本,
将下面这一行注释掉即可
CONSOLE=/dev/console
8. Q: 在solaris下,如何查看网络是否配置成功?
A: 可以采用命令Ifconfig -a来查看,如果网卡绑定ip成功,而不是显示0.0.0.0
就证明网卡配置基本无误,主要检查网络介质(网线,RJ45插头...)是否损坏。
9. Q: 如果敲错一个命令如何结束它呢?
A: solaris和SCO有少许不一样,solaris可以采用ctrl+C来结束,而不是SCO的
ctrl+Del
10.Q: solaris的联网中,网关如何配置?
A: solaris的网关设置和SCO的设置不一样
SCO:
/etc/gateways
<net|host>; name1 gateway name2 metric value <passive|active|external>;
所有中间的很长的空均为TAB
Net,host 表示路由指向是网络还是主机,net和host是关键字
Name1 目的网络名或主机名
Gateway 关键字
Name2 网关名或网关ip地址
Metric 关键字
Value 跳数
Passive 关键字,表示被动方式,路由器不叫换路由信息
Active 关键字,表示主动方式,路由器交换路由信息
External 关键字,表示外部方式,其他进程已安装了路由
例如:
net 129.9 gateways 129.6.0.1 metric 1 passive
host 129.7.10.21 gateway 129.6.0.2 metric 1 passive
Solaris
为defautrouter,只需要在里面填入网关。
11.Q: 如何在网上安装Solaris?
A: 假设SERVER IP为10.11.41.10,hostname为inssvr;CLIENT IP为10.11.41.11
,hostname为inscli。
在SERVER端执行以下步骤
条件:有340M的剩余空间
1. 将Solaris 2.6的安装盘插入CD-ROM
2. 将Solaris 2.6 CD-ROM的slice 0拷贝到硬盘
# cd /cdrom/sol_2_6_sparc_smcc_svr/s0/solaris_2.6/Tools
# ./setup_install_server /export/install
3. 编辑文件/export/autocfg/sysidcfg,以下是它的内容
#Sample sysidcfg file for SPARC systems
system_locale=en_US
timezone=GMT-8
timeserver=10.11.41.10
terminal=dtterm
name_service=NONE
root_password=...(取自/etc/shadow文件)
4. 编辑文件/etc/hosts,以下是它的内容
10.11.41.10 inssvr loghost
10.11.41.11 inscli
5. 增加安装客户
# cd /export/install
#./add_install_client -e CLIENT的以太网地址 -i CLIENT的IP地址 -s inssvr:/export/install -c inssvr:/export/autocfg -p inssvr:/export/autocfg inscli sun4u
在CLIENT端的OK提示符下执行
OK boot net - install
Solaris 7 for sparc与2.6的区别,7没有默认的sysidcfg和autocfg目录,需要自
己建立,而且OK boot net即可
12.Q: DHCP in Solaris8?
A: 1. # touch /etc/dhcp.hme0,hme0:请用相应的网卡设备名;
2. 修改/etc/init.d/network,/etc/init.d/inetsvc
先备份
# cp /etc/init.d/network /etc/init.d/network.org
# cp /etc/init.d/inetsvc /etc/init.d/inetsvc.org
修改/etc/init.d/network第278行:
"dhcp" #hostname=`/sbin/dhcpinfo Hostname`
hostname=`cat /etc/nodename`
修改/etc/init.d/inetsvc第168行:
hostname=`/sbin/dhcpinfo Hostname`
if [ -z "$hostname" ]; then
#hostname="unknown"
hostname=`cat /etc/nodename`
fi
修改/etc/init.d/inetsvc第82行:
if [ "$_INIT_NET_STRATEGY" = "dhcp" ]; then
#dnsdomain=`/sbin/dhcpinfo DNSdmain`
dnsdomain=`cat /etc/defaultdomain`
else
dnsdomain=
fi
if [ -n "$dnsdomain" ]; then
#dnsservers=`/sbin/dhcpinfo DNSserv`
dnsservers=`cat /etc/dnsservers`
修改/etc/init.d/inetsvc第220行:
/usr/bin/mv /tmp/hosts_clear.$$ /tmp/hosts.$$
mydomain=`cat /etc/defaultdomain`
echo "${ipaddr}\t${hostname}\t${hostname}.${mydomain}\t# Added by DHCP" >;>;/tmp/hosts.$$
在/etc/init.d/inetsvc第一行加入如下语句:
if [ -f /etc/dhcp.*[0-9] ]; then
_INIT_NET_STRATEGY="dhcp"
export _INIT_NET_STRATEGY
fi
3. 创建/etc/defaultdomain,内容为huawei.com.cn
4. 创建/etc/nodename,内容为你的机器名
5. 创建/etc/dnsservers:129.9.111.100 10.15.1.3
之所以要修改,究其原因我们的DHCP服务器支持的协议可能比较老,不能返回给
客户端DNSdomain,DNSServer,Nodename;
13. Q:SUN上如何编译动态库?
A:
CC=cc
C++=CC +w
.SUFFIXES:.cpp
.cpp.o:
$(C++) -g -c -Kpic $<
liberrlog.so:ErrLog.o
ld -o liberrlog.so -G ErrLog.o
14. Q: 在sun工作站上安装solaris软件时没有安装网卡,安装完成后应该修改那些文
件添加网卡?
A:
1. #reboot --r 或者ok boot -r
2. 在1.成功找到你新加的硬件之后,再执行相应的硬件设置命令,对网卡执行:
ifconfig hme0 <ip>; [ipmask],其中hme0是你网卡的设备名,可以通过dmesg知
道你的网卡设备名.
15. Q: 如何设置DNS?
A: (1)/etc/nsswitch.conf的hosts解析加上nis或/和dns,内容如下
hosts: files dns
(2)设置到DNS服务器网关于/etc/defaultrouter,内容如下
10.11.43.254
(3)设置DNS服务器的IP地址/etc/resolv.conf,内容如下
nameserver 10.15.1.3
nameserver 129.9.111.100
domain huawei.com
16. Q: Ultra60工作站从外挂光驱启动?
A: Ultra60 工作站缺省配置是内置光驱,用外挂光驱重新安装Solars时,用boot
cdrom命令则不能从光驱启动,屏幕上打印错误信息:Drive not found.
原因如下:由于Ultra60工作站缺省支持内置光驱,cdrom的缺省配置是内置光
驱的物理设备名。当使用外挂光驱时,当使用boot cdrom命令时,cdrom的替
换为内置光驱的物理设备名。这就是不能从光驱启动的原因。
解决办法如下:
(1)stop+a命令
(2)在ok提示符下输入:probe-scsi-all
则出现硬盘、光驱、磁带机等设备的实际物理名。
如:/pci@1f,4000/scsi@3,1
cdrom
(3)在ok提示符下输入:devalias
则出现硬盘、光驱、磁带机等设备的缺省设置。
如:cdrom /pci@1f,4000/scsi@3/disk6,0:f
这是缺省配置,用boot cdorm命令时,cdrom被解释为
/pci@1f,4000/scsi@3/disk6,0:f
而/pci@1f,4000/scsi@3/disk6,0:f指示的是内置光驱的设备名,
因此不能从外挂光驱启动!
(4)在ok提示符下输入:boot /pci@1f,4000/scsi@3,1/disk6,0:f
说明:[boot后的参数参看(2)和(3)中的cdrom的设备名,由两者组合而来
即可正确的从外挂光驱启动。
17. Q: 一台Sun Ultra80工作站安装SunOS 5.6失败,请问其原因以及如何避免?
A: 硬件环境为Ultra-80/2CPU(450M)/1harddisk(18G)/2G Memory,从网络启动安
装SunOS 5.6。安装过程中途中断并出现以下提示:
panic[CPU3]/thread=0x301bde80: CPU3 privileged UE Error: AFSR 0x00000000 80200000
AFAR 0x00000000 7c5e0190 SIMM U1302 U0302 U1301 U0301
syning file systems... [27[ 406 136 done
12535 static and sysmap kernel pages
50 dynamic kernel data pages
205 kernel pageable pages
0 segkmap kernel pages
0 segvn kernel pages
0 current user process pages
12790 total pages (12790 chunks)
dumping to vp 6145608c, offset: 3989467
panic[CPU3]/thread=0x30043e80: panic dump timeout
Dump Aborted
Type 'go' to resume{3} ok
随后输入‘go'或者‘boot -r’都无法使系统启动,提示如下:
Can not open Kernel/unix
input filename [Kernel/unix]:
只有重新从网络启动。这是由于CPU硬件结构与Solaris系统不兼容造成的,
需要补丁。这个问题不仅仅是在Ultra80的机器上,如果Ultra60使用了SUN的
新推出的高速CPU(400M以上,一般为450M)且操作系统为Solaris 2.6或者
Solaris 2.5.1,也会出现类似问题。如果工作站使用的是这种高速CPU,在
随新机器一起的附件中会有一本手册:Installing Solaris 2.5.1 or
Solaris 2.6 Software on 419+ MHz Systems,其中详细描述了如何解决这
个问题(在zh-6页)。另外,附件中还有一张补丁光盘,名字叫做:
Operating Environment Installation CD May 1999,此光盘专门用于解决
此问题.
18. Q :在solaris上如何进行数据的备份和恢复?
A: 备份整个文件系统,也称作完全备份(full dump);在完全备份的基础上备
份修改过的文件,称作渐进备份(incremental dump);
ufsdump
ufsdump命令用于备份文件系统,可以完全备份也可以渐进备份。ufsdump命令的格式
为:/usr/sbin/ufsdump [options] dump_device files_to_dump
options包括:
0-9:指定备份的级别。0为最低,即完全备份;9为最高。假设当前备份级别为i,那
么ufsdump命令在执行时将寻找最近一次级别等于i或小于i的备份,将以前备份过后修
改过的文件备份下来。例如,星期一执行了一次级别为2的备份, 星期二执行了一次
级别为4的备份,那么当星期三执行级别为3的备份时备份文件中将包括自星期一备份
以来所有修改过或新创建的文件。如果星期三执行级别为4的备份,那么备份文件中将
包括自星期二备份以来所有修改过或新创建的文件。
f:指定备份的设备,例如/dev/rmt/0;
u:更新备份记录(/etc/dumpdates)。使用这一选项后ufsdump将创建或更新
/etc/dumpdates文件,文件内容包括文件系统名、备份级别、和备份时间,例如:
pioneer# ufsdump 0uf /tmp/ddd /dev/dsk/c0t0d0s0
DUMP: Writing 32 Kilobyte records
DUMP: Date of this level 0 dump: Mon Sep 07 22:37:16 1998
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s0 (pioneer:/) to /tmp/ddd.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Estimated 25234 blocks (12.32MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 25214 blocks (12.31MB) on 1 volume at 1599 KB/sec
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Mon Sep 07 22:37:16 1998
pioneer# more /etc/dumpdates
/dev/rdsk/c0t0d0s0 0 Mon Sep 7 22:37:16 1998
备份前的准备工作
重新启动系统到单用户状态,或将要备份的文件系统卸载下来。
通知所有用户该文件系统不可用。
#wall
/export/home will be unavailable in two minutes, please log out
Press ctrl-D
对文件系统进行检查(fsck)。
ufsdump
如前例所示。
如果使用渐进的备份方法,最后实现建立备份计划,例如:
Sun Mon Tue Wed Thu Fri
Week1: Full 5 5 5 5 3
Week2: 5 5 5 5 3
Week3: 5 5 5 5 3
Week4: 5 5 5 5 3
上例中,每个月作一次完全备份,每个周末对每一周的改动作一次备份,每天的备份
只对当天的改动作备份。这样作的目的是节省备份所用的空间。
ufsrestore
ufsrestore用于恢复使用ufsdump命令备份的文件系统。命令格式为:
/usr/lib/fs/ufs/ufsrestore options [arguments] [filename ...]
options包括:
t:备份列表;
x:只恢复命令行中指定的文件;
r:恢复整个备份;
f:指定备份文件所在的设备或目录;
v:verbose mode,列出备份文件的路径。
例如:
对备份文件进行列表:
pioneer# ufsrestore tvf ddd
Verify volume and initialize maps
Media block size is 126
Extract directories from tape
Initialize symbol table.
Dump date: Mon Sep 07 22:37:16 1998
Dumped from: the epoch
Level 0 dump of / on pioneer:/dev/dsk/c0t0d0s0
Label: none
dir 2 .
dir 3 ./lost+found
dir 5696 ./usr
dir 11392 ./var
dir 5697 ./export
dir 11393 ./export/home
dir 5698 ./opt
leaf 4 ./bin
dir 11394 ./dev
dir 5699 ./dev/sad
leaf 5879 ./dev/sad/admin
leaf 5825 ./dev/sad/user
leaf 11592 ./dev/be
leaf 11496 ./dev/conslog
...
从备份中恢复指定文件:
pioneer# cd /tmp
pioneer# ufsrestore xvf ddd ./etc/passwd
Verify volume and initialize maps
Media block size is 126
Dump date: Mon Sep 07 22:37:16 1998
Dumped from: the epoch
Level 0 dump of / on pioneer:/dev/dsk/c0t0d0s0
Label: none
Extract directories from tape
Initialize symbol table.
Make node ./etc
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #: 1
extract file ./etc/passwd
Add links
Set directory mode, owner, and times.
set owner/mode for '.'? [yn] n
执行该操作需要指定所要恢复的文件在备份文件中的位置。由于备份文件从卷1开始,
所以可以指定从卷1开始搜索。恢复整个文件系统下例将一个老的文件系统(/opt)移
到一个新的磁盘分区(/dev/rdsk/c0t3d0s5)中。首先,卸载老的文件系统并实施备
份:
#umount /opt
#fsck /opt
#ufsdump 0uf /dev/rmt/0 /opt
其次,生成新的文件系统,将其安装到一个临时目录(/mnt),并实施恢复:
#newfs /dev/rdsk/c0t3d0s5
#fsck /dev/rdsk/c0t3d0s5
#mount /dev/dsk/c0t3d0s5 /mnt
#cd /mnt
#ufsrestore rvf /dev/rmt/0
#rm restoresymtable
最后,卸载新的文件系统,用fsck检查其一致性。
#cd / umount /mnt
#fsck /dev/rdsk/c0t3d0s5
选择性备份,备份指定的文件和目录;
tar
系统备份:tar -cvf 目标文件名/设备名 备份文件,例如:
tar -cvf backup.tar *
命令将当前目录下的所有文件(包括各级子目录)都打包在backup.tar文件中。
tar -cvf /dev/rmt/0 *
命令将当前目录下的所有文件(包括各级子目录)都打包到磁带上。查看tar文件的内
容:tar tvf 目标文件名/设备名,例如:
tar -tvf backup.tar
tar -tvf /dev/rmt/0
将tar文件中的内容恢复到指定目录中去:tar xvf 目标文件名/设备名 [目录名],例
如:
tar -xvf backup.tar /home
tar -xvf /dev/rmt/0 /home
如果不指定目录名则表示当前目录。
19. Q: 如何在Soraris下面安装ATM网卡?
A: 网卡型号:FORE PCA-200EUX/OC3
操作系统:Solaris 2.7
工作站:SUN Ultra60
一、硬件安装
1、工作站关电后,将网卡妥善安装在一个PCI插槽中;
2、工作站上电,按STOP and A中断boot process,到ok提示符;
3、输入命令show-devs,显示系统配置,FORE网卡的device-pathname应出现在
配置列表中,形式可能如下:
/pci@1f,2000/FORE,PCA-200E@2
4、设备提供光口自环测试(media loopback)和内部自环测试(internal loopback),
供检查设备及安装是否完好。根据经验用内部自环测试即可,方法:
输入命令 test /pci@1f,2000/FORE,PCA-200E@2
待出现:pass 0 说明硬件及安装都正确;
5、输入boot命令 ,启动系统。
二、软件安装
1、软件安装需要root权限;
2、网卡支撑软件一般是一个.tar文件提供,解开后在其目录下有8个子目录,分
别为:
FORECore ForeThought ATM Core Software
FOREDrv ForeThought ATM Card Drivers
FORESpans ForeThought SPANS Signalling Software
FOREUni ForeThought UNI Signalling Software
FOREclip ForeThought Classical IP Software
FOREip ForeThought FORE IP Software
FOREmpoa ForeThought MPOA / LAN Emulation Software
FORExti ForeThought XTI Application Programming Interface
3、例如.tar文件解开后在/home/FORE下,则该目录下就有上述8个子目录,我们要
用的程序在FOREDrv、FOREip下,但各个模块之间有一定的依赖关系,需要安装的模块
有6个: FORECore、FORESpans、FOREDrv、FOREip、FOREUni、FOREclip。安装过程:
>; pkgadd -d /home/FORE
The following packages are available:
1 FORECore ForeThought ATM Core Software
.........(sparc) 5.1
2 FOREDrv ForeThought ATM Card Drivers
.........(sparc) 5.1
3 FORESpans ForeThought SPANS Signalling Software
.........(sparc) 5.1
4 FOREUni ForeThought UNI Signalling Software
.........(sparc) 5.1
5 FOREclip ForeThought Classical IP Software
.........(sparc) 5.1
6 FOREip ForeThought FORE IP Software
.........(sparc) 5.1
7 FOREmpoa ForeThought MPOA / LAN Emulation Software
.........(sparc) 5.1
8 FORExti ForeThought XTI Application Programming Interface
Select package(s) you wish to process (or 'all' to process all packages).
(default: all) [?,??,q]:
选择要安装的模块,根据提示安装。
4、安装后的软件在/opt/FOREatm /bin (使用的配置命令所在目录)
/conf
/examples
/include
/lib
/man
三、网卡配置
1、网络接口名配置
>;configure_atm
选择配置ip模块,得到一个ip interface名,默认为fa0。重启工作站,可以看到在
/dev下有fa0接口,而网卡的设备名为fatm0。
2、>;adinfo fatm0 可查询设备硬件信息
>;adconfig fatm0 可进行设备配置
>;adstat fatm0 可查询设备状态
这三个命令较少用到。
3、接口ip地址配置
ifconfig fa0 <internet address>; netmask <netmask>; broadcast <broadcast>; up
4、IPOA配置
atmarp -s hostname device vpi vci aal encapsulation(outgoing PVC配置)
atmarp -l device vpi vci aal encapsulation (incoming PVC配置)
例:分配给工作站的pvc为 vpi 0 vci 150
工作站的IPOA地址为200.200.200.101
MUSA设备的IPOA地址为201.200.200.100
AAL类型为5
encapsulation 为llc_routed
>;atmarp -s 201.200.200.100 fa0 0 150 5 llc_routed
>;atmarp -l fa0 0 150 5 llc_routed
[在MUSA设备上要做:add nms、act nms、add route、add atm arp、add ipaccess]
>;ping 200.200.200.101 如果ping通,则已配置成功。
20. Q: 在哪里能得到有关Solaris的较全面的文档?
A: http://docs.sun.com
21 .Q: 请教sun小型机上的路由跟踪命令是什么?(HP上是traceroute)谢谢!
A:这个命令也是traceroute.在/usr/sbin目录下.
22. Q: 一个GUI程序,在换个不同的SUN环境时界面就变的难看了,主要是字体影响
(还有其它影响么?)SUN 的字体都有哪些,如
-sun-screen-bold-r-normal--14-140-72-72-m-90-iso8859-1
都有哪些可选?
A: If a font can not be found in the system, the system will select
another font which might be not so elegent as you expect. The
correct way is to insure the font you want is correctly installed in
system. In solaris answer book, there is a perfect reference talking
about the font administration "font administration" in System
Administration Vol1. You can get solaris answer book by accessing
sunlibrary.huawei.com. Chen Zhexue(4924)is responsible for maintain.
it.
23 Q: Solaris启动过程是如何的?启动的时候读那些文件启动一些服务比如我要在系
统启动的时候自动启动Apache(httpd)服务,应该在哪个文件里面配?
A: Solaris的启动是典型的ATT UNIX启动过程, 在普通的UNIX书记和SUN公司的文
档中都有详细的介绍,这里就不详谈了. 要点室内核引导后启动init进程, init
按照/etc/inittab 的控制加载各子系统, 一般是执行 /etc/rc* 之类的脚本.
这些脚本再执行 /etc/rc*.d/ 下的脚本,其中 /etc/rc2.d/S72inetsvc 运行
inetd, 该后台进程根据/etc/inetd.conf 控制网络服务,所以要自动启动
Apache,需要在inetd.conf 中修改或增加 80 端口的启动命令。(如果不是用80
,还要修改/etc/services文件)
24 Q: 有一个问题要请教一下,谢谢!
一台SUN服务器,更换IP地址。
原来地址为10.11.43.137,现在更换为10.108.22.247
我的操作步骤如下:
1:修改/etc/hosts文件,修改后的文件内容如下:
127.0.0.1 localhost
10.108.22.247 westsnow loghost SYBASE
10.109.22.247 eastsnow
/etc/hostname.hme0文件内容:
westsnow
/etc/hostname.hme0:1文件内容:
eastsnow
2:修改/etc/netmasks文件,修改后的文件内容如下:
10.0.0.0 255.255.0.0
3:修改网关/etc/defaultrouter文件,修改后的文件内容如下:
10.108.22.1
按照上面步骤修改完后REBOOT机器,启动过程中没有任何异常,但是机器启动
后和别的机器连不上,而且连网关都 PING 不通,请问是什么原因?谢谢!
A: /etc/hostname.hme0:1 中应当写你想用的IP地址,而不是机器名. 如果只改IP
地址,就不需要这个文件.
25 Q: UTF-8和US-ASCII之间的区别在那里?请举例说明。
A: UTF-8 包括 US-ASCII 和多字节编码。与普通的多字节编码不同,UTF-8的字节
长度不固定,对于ASCII, 字节长度为1, 对于中文,阿拉伯文等,可以是2,3或更
多字节,这样能有效节省存储空间. 它还与很多传统编码标准兼容,所以很受欢
迎.
26 Q: 如何在脚本里实现修改用户口令?
A: 由于修改口令需要从终端读取用户口令,所以不能用重定向的办法,但可以采用
expect 之类的工具,这些工具建立一个伪终端来模拟输入, 所以起到用脚本控
制终端的效果.
27 Q: 我在用EXCEED连到工作站时,开了一个root权限term,网络突然中断,请问如
何能够kill该term的进程?
A: 用xkill 连dtterm 一起杀掉。在桌面上是可以的,在exceed 中不知是否可以。
28 Q: 在Solaris下可用什么命令查看system software info?
A: 用/usr/bin/pkginfo .
或者 /usr/bin/prodreg,有图形界面将注册过的产品显示成树的形状.
29 Q: 请问:在SOLARIS 8 中,用什么命令看port id?
A: 我曾就这个问题问过不少人, 有的说 fuser 可以做,但我查 fuser 的手册
没有见到相关选项。lsof 是一个比较理想的工具,可以从sunfreeware.com下
载。还有一个简单的办法是这样的:
/usr/proc/bin/pfiles /proc/* >; result.txt
在到result.txt 中搜索相应 socket port. 也可以自己用awk 过滤 pfiles 的
结果
30 Q: 使用FTP时,不能以root用户登录系统,应修改什么配置文件?
A: 看一下 /etc/ftpusers ,如果有root, 删掉就可以了。
31 Q: 我们的系统需要计算solaris的负载,可以使用uptime输出的load average吗,
如果不用uptime,使用libkstat的load average可以吗?
A: 可以.
32 Q: 请问uptime的load average 是如何计算出来的?
A: 这个问题满复杂的,我们知道, unix内核里有许多种结构,如 user,proc等,
有的还mount到 文件系统中 ,比如 /proc /dev/kstat /dev/ksysm, uptime,
kstat,sar ,vmstat, prstat 等命令都是通过分析这些结构来进行计算的有
一个系统函数叫getloadavg ,uptime 就是直接调用这个函数的,你也可以试试.
33 Q: 如何得到和设置操作系统内核参数。
A: 通常,这些参数在 /etc/system 中配置。
34 Q: 如何得到系统当前动态运行指标,如CPU占有率、IO量、硬盘剩余空间等。
A: 检查的命令则有许多,可用 vmstat 和 sar 命令,还有iostat ,df ,du 用
于检查磁盘的情况。
35 Q: How can I get a Workshop6's licence?
A: get a new one from www.sun.com and install it again.
URL is http://www.sun.com/forte/cplusplus/buy.html
cp licence-file install_dir/SUNWspro/licencse_dir/sunpro.lic,node
36 Q: 请问能否在一个slice里挂两个文件系统?
A: 不可以.
37 Q: 请问修改了/etc/nodename后,UNIX工作站启动不了,该如何是好?
A: 单纯修改nodename 不够,还应修改 /etc/net/*/hosts
38 Q: Solaris的/usr/lib/dmi/snmpXdmid是干什么用的?
A: Sun Solstice Enterprise SNMP-DMI mapper subagent
man snmpXdmid 可得.
39 Q: 我的工作站上没有光驱,想通过远程安装,可否?
A: 可以,有两种方式:
1。 将 solaris 光盘内容以 ftp 上传,本地安装
2。 做一个install server ,远程直接安装。
3. 用remote光驱安装
(在remote机器)
# ps -ef | grep nfsd
# mkdir /dummy
# vi /etc/dfs/dfstab (share -F nfs -o ro /dummy)
# eject cdrom0
# chmod 644 /etc/rmmount.conf
# vi /etc/rmmount (share cdrom*)
# chmod 444 /etc/rmmount.conf
# (Load a CD.) share
- /dummy ro ""
- /cdrom/sol_7_sparc/s5 ro ""
(在本地)
$ showmount -e starbug
# mount -F nfs -o ro starbug:/cdrom/sol_8_sparc /cdrom
$ ls /cdrom
$ <install software>;
40 Q: 我们想了解一下SUN公司年机器在并行程序运算方面的能力和相应的平台。
A: 您知道,SUN公司在SMP技术上居于领导地位,所设计的体系结构具有良好的可
扩展性。只对硬件升级,不改动代码,往往就可以得到接近线性增长的性能,
如果有开发工具的帮助,会取得更好的效果,sun公司提供的 Forte C/C++
workshop 包含许多工具帮助开发者分析软件性能病进行优化,Solaris也包含专
门的库函数以提高计算效率,SUN公司有一本白皮书专门介绍高性能计算 您可
以从 docs.sun.com 得到.书的名字叫: UltraConputing:How to Achieve Peak
Performance from Solaris Applications..
41 Q: 我在/etc/skel/local.profile作的环境变量的修改但没有在新增用户时候得到
验证,为什么?这不是一个模板吗?(用EXIT退出窗口, 再用新用户登录)
A: 如果是从终端登录,.profile 会起作用,但如果从CDE 登录,则系统执行
.dtprofile,要想执行 .profile, 还要修改 .dtprofile一般情况下,如果想设
置一个环境变量使其对所有用户生效,可以修改 /etc/profile
42 Q: /etc/system 文件中的namespace指的是什么,与Modules有何关系?system文
件中哪些参数将对机器性能有较大影响?
A: 所有的手册都警告说修改system文件应当慎重,事实上,也只有在安装数据库,
增加新的设备时,才有可能需要修改此文件.所改的参数,也就是你附件中改过的
那几个线程数,信号量之类的. 修改参数值,会影响整个系统的开销,因为这些值
所涉及的空间分配是在系统启动时进行的namespace用于对modules分类, 说明
中指出了目前支持的几种namespace,用户不能增加新的种类.
43 Q: I am a programer work with SUN C++. Can I use STL(stand template
library) in program. I can't find any help in SUN C++'s
document.Thank you.
A: Sun 的 C/C++ WorkShop 中的C++ 类库好像包含 STL, 可以参考一下.
docs.sun.com 上有完整的文档,可以参考一下.
44 Q: 原来的系统中/usr与 / 在同一个硬盘分区上,由于安装了许多软件,此分区已满
,现在系统增加了硬盘,如何将/usr 目录挪到新的硬盘上?
A: 1.在新的硬盘上将文件系统建好,
2.mv /usr /usr.bak
3.mkdir /usr
4.mount newdriverpath /usr
5.cp -r /usr.bak /usr
6.修改/etc/vfstab 文件.
45 Q: 运行下面这段程序并用vmstat观察内存的使用情况:
int main(){
int *p[100];
int c;
printf("before new!";
c=getc(stdin);
for(int i=0;i<100;i++)
p=(int *)malloc(sizeof(int)*32000);
printf("after new!";
//1.....
c=getc(stdin);
for(int i=0;i<100;i++)
free((void *)p);
printf("after delete!";
//2......
c=getc(stdin);
return 0;
}
发现在 2 处系统的空闲内存块并没有增加,free调用到底有没有释放内存?
A: malloc 调用引起进程堆空间增长,但free调用不会导致该堆空间立即缩小,
系统只是简单记录这一变化,就继续运行程序,只有系统出现内存短缺时,
系统才收集这些内存块重新分配,这样实现是为了减少系统开销,提高效率.
46 Q: 请问在kstat的输出中,类似avenrun_15min这种内核动态参数有没有介绍材料?
A: 通常, kstat输出的是内核模块中的一些链表或数组,按照SUN公司的文档,这些
输出结果是自解释型的,根据他们的名字就可以猜到其含义.但实际上并不是这
样.这些链表中包含的结构是在<sys/>;下的一些头文件中定义的,比如
kmem_cache模块的结构由kmem_impl.h定义,hme模块的结构由hme.h定义,等等.
翻看这些头文件,可以得到稍微详细一点的资料. 参数名字通常与某结构的成员
变量同名,头文件中由简单的注释指出其作用. 比如:hme模块输出中包含如下字
段:
brdcstrcv 1094670
我们就可以查hme.h,hme.h中有一个很大的结构:hme, 其中有:
uint32_t hme_brdcstrcv; /* # broadcast packets received */
47 Q: 1.问题描述:Router&LanSwitch的日志管理依赖系统的syslogd进程来实现。
通过设置/etc/syslog.conf文件, 可以控制syslogd把日志存入特定的文本
文件中。然后日志后台就可以周期性的轮询这些文件并导入数据库。按照sun
的man页说明,当向syslogd进程发HUP信号时,进程将重读配置文件
/etc/syslog.conf,然后继续运行。 但在Solaris2.7以下实际的效果是:发
HUP信号将导致syslogd进程不能正常工作(有的试验结果是,信号导致进程
终止),后续设备日志全部丢失。
2.解决建议:
我们的建议是,修改系统的脚本文件/usr/lib/newsyslog,不让其向syslogd
发HUP信号,而是TERM(终止信号),然后重启。此种方法的弊端是,如果用
户主动向进程发HUP信号,仍然存在问题。而且也不能解决syslogd意外退出
的情况。第二种建议是由综合统一做一个检测进程,这样各项目就不会产生
冲突。但仍然存在用户主动向进程发HUP信号使syslogd失效的问题。由上述
可以看出,无论何种方法,都不能彻底解决问题。
A: 问题的产生可能是由于程序员定义了新的日志文件并企图 使用newsyslog 脚
本来处理,这个脚本备份日志文件再发送 HUP信号。newsyslog 脚本在处理系
统文件时不会有问题,很可能是由于syslogd对这些文件做过专门的处理。但
不能认为我们自己的文件也会得到同样的照顾,事实上,这样做通常是危险
的。 我认为建议2 是可行的, 因syslogd打开的是新的日志文件,不会发
生异常。而用户发送的 HUP 命令只是使 syslogd重读 syslog.conf 文件
,也不会发生意外.为了比较好的定位问题,建议在一个比较干净的系统上进
行测试,在测试之前最好停掉自己的程序,
简化/etc/syslog.conf,我是这样测试的:
# /usr/lib/newsyslog
# logger -p deamon.notice "12345"
# cat /var/adm/messages
# kill -HUP `cat /etc/syslog.id`
# logger -p deamon.notice "aaaa"
# cat /var/adm/messages
结果正常.
48 Q: Solaris 8中,为什么不可以用如下命令给网卡增加逻辑地址?
ifconfig hme0:1 xxx.xxx.xxx.xxx up
A: Solaris 8 对ifconfig 作了一些改动,在这个命令之前,先执行下面的命令就可
以了: ifconfig hme0:1 plumb
49 Q: 为什么Solaris 中的多个网卡显示的以太网地址都是一样的?
A: 缺省情况下,系统使用本机的MAC地址作为各网卡的MAC地址,可以用如下
OpenBoot 命令让系统使用网卡自带的MAC地址.
ok setenv local-mac-address? true
50 Q: 如何在一台机器里如何实现用多块网卡容错?
A: Solaris8 新增了一个daemon叫mpathd将网卡管理分组管理来完成这样的功能.
原理是给每个网卡分配两个地址,多出的一个逻辑IP地址由mpathd用来检查个网
卡的工作情况.下面一两块网卡为例介绍配置过程,这里两块网卡分别是hme0和
hme1,
1. ifconfig hme0 group test
ifconfig hme1 group test
2. ifconfig hme0 addif 19.16.85.21 netmask + broadcast + -failover deprecated up
ifconfig hme1 addif 19.16.85.22 netmask + broadcast + -failover deprecated up
3. 检查hme0:1和hme1:1看是否有逻辑IP
ifconfig hme0:1
ifconfig hme1:1
这里要注意,给网卡增加的逻辑IP应当与实际分配的IP地址在同一个网段并
且不能与网上其他主机IP地址冲突.
51 Q: 一个进程里最多可以打开多少文件?
A: 操作系统为每个进程维护一个所打开文件的数组,进程能够打开的文件与此数组
的大小有关.此数组的大小由两个系统变量限制: rlim_fd_max , rlim_fd_cur,
这两个变量可以用limit或ulimit 命令察看和修改,要扩大rlim_fd_max需要
root权限,rlim_fd_cur不能超过rlim_fd_max. 编程时则有库函数 getrlimit
和 setrlimit 可以使用. 另外一种改法是在 /etc/system文件中修改. 如果是
调用stdio函数打开文件,则还有另外一种限制,32位内核Solaris 的 FILE 结构
中的 文件句柄是一个字节,所以同时打开文件的上限是256
52 Q: 如何改变登录CDE时的语言环境?
A: 修改/usr/dt/config/Xconfig文件中的变量 Dtlogin*language即可.
53 Q: 如何防止用户通过CDE 环境中的 suspend 菜单关闭计算机?
A: 修改 /usr/openwin/bin/sys-suspend的执行权限就可以了.
54 Q: 我安装完solaris5.7之后(安装时选择简体中文),运行C语言编译器cc不成功
,提示“language optional software package not installed.”。请问这是
怎么回事,该如何解决?
A: Solaris本身带有adb,mdb,make工具,但不带C语言编译器.若要使用需要单独购
买软件包及license.
55 Q: 想修改ROOT的缺省PATH,在哪改?不要告诉我LOCAL.PROFILE,不管用.
A: 如果以root用户身份登录或者用 su - 命令进行切换,则修改 home目录下
.profile是管用的. 如果是简单的 用 su 进行切换, 则系统保留除 PATH之外
的所有环境变量, PATH被设为 /etc/default/su 中的 SUPATH ,缺省时为
/usr/sbin:/usr/bin
56 Q: 问一下,现在在Solaris下有什么比较好的测试程序语句以及条件覆盖率的工具
A: prof 和 gprof 都有. 如果您使用workshop 或者 Forte 6.0,则其中有
performence analysis tools 可以使用.
57 Q: 怎么样让系统启动时就自动在一个网卡上绑定两个IP地址
A: 创建文件 /etc/hostname.hme0:1,其中写上第二个ip地址.
58 Q: Sun solaris7系统中有一下几种SHELL,sh,csh,ksh,另外还有一个jsh.
我的问题是:jsh是什麽SHELL?另外有bash SHELL吗?
A: jsh 就是 sh, 只不过是激活了job control 模式. 但现在 sh 本身就有job
control 功能,所以只用 sh 就可以了. bash 是 sh 的增强, 如果你的系统没
有这个shell, 可以到 www.sunfreeware.com 下载.
ls /bin/*sh 可以看到系统所有存在的shell.
59 Q: 我的光驱无法读取光盘?且总是显示设备忙,如何搞定?mount显示没有被
mount.
A: 查找进程 vold 并将其杀死,就可以手工打开光驱.
60 Q: 如何将root用户的shell改掉,我知道一般用户可在admintool下修改,但root
用户不能。
A: 1. chmod 666 /etc/passwd (一定要让普通用户有些权限,切记!)
2. vi /etc/passwd(最后一个字段试root 的 shell,要确保该程序存在方可改
掉它. )
61 Q: 我在安装Solaris 8时启用了DHCP,现在我的主机名是unknown,在启动时工作
站启用DHCP并分配IP,主机名也自动改为unknow。请问怎样改主机名?
A: DHCP in Solaris8
1. # touch /etc/dhcp.hme0,hme0:请用相应的网卡设备名;
2. 修改/etc/init.d/network,/etc/init.d/inetsvc
先备份
# cp /etc/init.d/network /etc/init.d/network.org
# cp /etc/init.d/inetsvc /etc/init.d/inetsvc.org
修改/etc/init.d/network第278行:
"dhcp" #hostname=`/sbin/dhcpinfo Hostname`
hostname=`cat /etc/nodename`
修改/etc/init.d/inetsvc第168行:
hostname=`/sbin/dhcpinfo Hostname`
if [ -z "$hostname" ]; then
#hostname="unknown"
hostname=`cat /etc/nodename`
fi
修改/etc/init.d/inetsvc第82行:
if [ "$_INIT_NET_STRATEGY" = "dhcp" ]; then
#dnsdomain=`/sbin/dhcpinfo DNSdmain`
dnsdomain=`cat /etc/defaultdomain`
else
dnsdomain=
fi
if [ -n "$dnsdomain" ]; then
#dnsservers=`/sbin/dhcpinfo DNSserv`
dnsservers=`cat /etc/dnsservers`
修改/etc/init.d/inetsvc第220行:
/usr/bin/mv /tmp/hosts_clear.$$ /tmp/hosts.$$
mydomain=`cat /etc/defaultdomain`
echo "${ipaddr}\t${hostname}\t${hostname}.${mydomain}\t# Added by DHCP" >;>;/tmp/hosts.$$
在/etc/init.d/inetsvc第一行加入如下语句:
if [ -f /etc/dhcp.*[0-9] ]; then
_INIT_NET_STRATEGY="dhcp"
export _INIT_NET_STRATEGY
fi
3.创建/etc/defaultdomain,内容为huawei.com.cn
4.创建/etc/nodename,内容为你的机器名
5.创建/etc/dnsservers:129.9.111.100 10.15.1.3
62 Q: 我用msgget建一消息队列:
ret = msgget(IPC_PRIVATE, (0660)|IPC_CREAT);
在一个线程用msgsnd发消息,另一个msgrcv收:
ulReturnCode = msgsnd( QueueID, pBufferAddr, 8 ,IPC_NOWAIT);
当消息队列中的消息个数等于40时(每个消息尺寸为8字节),msgsnd函数返
回-1,errno= 11,请问是什么原因。是消息队列满吗?怎样调整系统参数,使
消息队列能大些。
A: msgmap : 100 maximum size of resource map for messages
msgmax : 2048 maximum size ,in byte, of a massages
msgmnb: 4096 maximum number of bytes on a message queue.
msgmni: 50 maximum size of message queue identifiers.
msgssi: 8 message segment size.
msgtql: 40 maximum number of message headers
msgseg: 1024 maximum number of message segments.
msgseg 最大为 32k, 其他参数最大值都是 2 billion.
63 Q: license server 如何启动?
A: run /opt/SUNWste/bin/lmgrd.ste 可启动 license server
64 Q: 在Solaris8下,如何修改一个目录的大小。安装时系统自动的设置
/export/home目录空间很大,而其他目录空间很小。
A: 1, 备份 /export/home,
2. umount /export/home,
3. 用 format 修改盘片大小,
4. 备份要增大的目录,
5, umount
5. 用 format 增加盘片大小.
6. 重新mount.
65 Q: 请问用什么命令可以确定是否有磁带设备?多谢。
A: 看一下 /dev/rmt 如果是空就没有.
.
66 Q: 在solaris 8下安装Forte Developer 6 到达:
installing Forte C++ Entep Ed 6/SPARC
installing Forte Developer 6
时死掉应如何解决
A: 在安装之前,应当清除所有以前安装时添加进系统的package.
另外,不用缺省目录 /opt , 换一个新建的空目录也有效.
67 Q: Forte c/c++版本可以用在solaris2.6操作系统上吗?
A: 可以
68 Q: 在输入用户名后启动很慢,有时甚至进不了,停在启动画面,不知如何解决(我用
过fsck,也不好使,有没有更好的办法)!能否重装操作系统,而不影响现有的已装
软件.谢谢!
A: 一般说来, 这与家目录下配置文件有关.新建一个用户试一试.
69 Q: 现在远程维护的解决方式是通过Modem拨号,建立连接,通过我们自己编写的IP
代理转发程序,完成对传输设备远程维护。在PC机上的拨号网络,拨号程序运
行都比较正常,对连接速度,稳定性方面目前使用还算可以。但是在设置Sun工
作站的拨号程序的时候,我常常会遇到一些“奇怪”的问题, 比如Modem不握
手,没有拨号音等。现在我们的拨号设置是自己编写的脚本文件方式。可能对
各种情况考虑的不全面,因此请问是否有相应的软件包(程序)可以帮助我们
机型拨号设置,保证拨号成功?
A. 连接失败通常与配置参数有关,由于硬件种类繁多,很难保证一个程序在所有的
硬件环境下都能顺利配置成功.我们只能针对具体情况进行分析.但我们发现,改
变串口的流倥方式经常有助于问题的解决.Sun solstice 中有一个拨号软件据
说比aspppd 更容易使用,我没有用过,或许您愿意试一试?
70 Q: 我这多线程程序,我用ftime得到函数的调用时间,发现在一个线程中,增加一
个printf后,调用时间为5毫秒。去掉这个printf,调用时间却为15毫秒。增加
了一个printf为什么后使该函数的执行更快了?
A: ftime 得到系统当前时间,但具体到线程的执行时间,是和系统的调度情况有关
的, 请用调试工具来检查准确的执行时间.
71 Q: 我们的技术支持人员遇到一个问题,向您请教:在安装时没有选择安装网络,
现在需要安装网络,怎样增加一个interface。目前只有lo0,没有hme0。
A: 在 /etc 下 touch 一个空文件 hostname.hme0, 用 boot -r 命令重起.
72 Q: 在Sun Ultra 5工作站(安装SOLARIS 2.6),每次开机时,都出现以下问题:
Restoring the system.Please Wait ... cpr_read_bitmap:Can't
cpr_alloc bitmap0
Can't read statefile bitmap,please reboot
Program terminated
{0} OK
每次开机都需要boot才能进入。
请问如何解决?
A: 首先, 在 ok 状态下检查 boot-file 参数:
printenv boot-file
如果是 boot-file = -F cprboot 之类, 用如下命令:
set-default boot-file
再检查一下.应该是空才对.
如果不是, 则需要设置:
setenv boot-file -F ufsboot
重新启动.
73 Q: 经实验,两台Sun工作站之间通过网络发Syslog日志,也不支持汉字,该问题可
能是syslogd的问题。
A: 估计是由于syslogd在望上传输时丢掉了字节的最高位.
74 Q: 如果需要ID:105181-15的patch,请问ID:105181-19可以代替吗?ID毫最好两位
是不是patch的版本号,如果是版本号有没有前项兼容性?
A: 可以, 后两位表示同一patch的版本号.
75 Q: 以下代码在Forte C++下导致编译错误,请问如何解决?
template<typename p1, typename p2>;
void testimpl(int i1, int i2, p1* n1 = 0, p2* n2 = 0)
{
p1* pReq = new p1;
p2* pRsp = new p2;
}
void test()
{
int i = 0;
int j = 0;
testimpl<int, int>;( i, j);
}
A: 请下载新的patch更新Forte C++
76 Q: 请问:如何设置工作站的最大客户端数?现有一台测试用机,使用人较多,经
常出现“无法得到pty”的提示。
A: 在/etc/system ,可以用参数 maxusers 设置,最大2048,如果这里没有设置,默
认为与系统内存容量相同(以M记,最大为1024),
77 Q: I install visibroker into my solaris 2.7.
When I execute a example program,it cannot execute and tell me:
ld.so.1: Server: 致命的: liborb64r_so:打开失败:无此文件或目录
被杀掉
(Server is my program)
Can you tell me how to settle it?
A: you should set this envirnment variable: LD_LIBRARY_PATH
78 Q: 贵处有无磁带机的使用手册或指导说明?
A: answerbook 中系统管理员手册 I 有使用说明.
answerbook 的文档不是html格式,需要一个服务器程序转换, 察看本机http进
程看有没有下面这个:
# ps -ef |grep http
# /usr/lib/ab2/dweb/sunos5/bin/dwhttpd /usr/lib/ab2/dweb/data
79 Q: 在 solaris 2.5.1 上 把 系统时间 改为 2004 年,无问题,然后把时间再改回
来后,整个UNIX 死机,请SUN工程师答复. 具体操作为: 将操作系统时间设为
2004年3月1日,然后再将操作系统时间改回当前的时间,则系统的cpu资源被两个
进程dtwm,dtfile严重占用,X Window反应非常缓慢,在低配置的系统上导致系统
不可操作.同时显示 "Warning:selected failed;error code 22.
A: 在窗口环境下或多用户模式下来回切换时间,会导致不可预测的结果,所以,
如果当真要执行此类操作,请在单用户模式下进行.
80 Q: shell 文件中如何从文件中读参数?
A: cat yourfile`
81 Q: 如何分析网络负载,在SUN上面有没有相应的工具
A: netstat -i
82 Q: 请问目前SUN E250,E450,E3500支持的CPU主频和缓存分别是多少?您能将这
些配置列表发给我吗?
A: docs.sun.com 有 硬件的answerbook ,可以参考一下。
现在支持的CPU到400M, 480M 产品已有.but still have not released
83 Q: mt -f /dev/rmt/0 有个参数:retension中文为“拉紧”,在磁带操作中具体
做什么?
A: the man page of this command said it clearly:
Rewind the cartridge tape completely, then wind it
forward to the end of the reel and back to beginning-
of-tape to smooth out tape tension.
so ,it is not 拉紧, but 放松 instead.
84 Q: 具体问题是:有一个进程不停的向该文件增加内容,同时另外一个进程建立了
与该文件的管道,从该文件中读取一行记录进行处理。然后删除该行记录。因
此需要保持该文件i-node不能改变,否则,向该文件写的进程就不能将信息写
入该文件了。有没有解决方法,请指教。
A: I don't know if I have understood you :
If you want save this file for later use, you should not remove its'
content,if you don't need these content, you don't need this file as
well, you can use pipe only, or other interprocess communication
methods.
85 Q: 我用dos2unix转换一文件,却不成功,提示信息如下:(我用PC机通过rexec远
程登陆的)
$dos2unix filename1 filename2
could not open /dev/kbd to get keyboard type US keyboard assumed
could not get keyboard tyep US keyboard assumed
请问此问题是怎麽回事?如何解决?
A: 权限问题, 检查一下 /dev/kbd 读写权限
86 Q: 我希望在一台ultra机器为以下网络配置路由
子网:10.1.0.0
掩码:255.255.0.0
网关:10.220.10.113
应该如何配置?
用以下命令可以吗?如果永久配置需要修改那些文件?
%route add 10.1.0.0 10.220.10.113
A: no,try this commond:
#route add default 10.220.10.113
87 Q: 有个patch 107311-09,能解决CC4.2不能处理#pragma pack()的问题吗?
A: the right patch is 104631, but you should add all related patch
to avoid other problem,find them at: sunsolve.sun.com
88 Q: 在CSH下我输入以下命令?
$setenv IWAVE 'pwd'
$echo $IWAVE
结果显示为:pwd
在我的理解中应该是将pwd的输出(如/tmp)赋值给变量IWAVE,所以我想象的
输出是/tmp
A: use ` instead ' apparently,they are different. read some unix books
for reference
89 Q: 为什么有时普通用户不能登录CDE?
A: 这个错误可能是由于CDE的不正确设置造成的。在每一个用户的home目录下有一
个.dt子目录.在此目录下有一个errorlog文件记录了CDE登录失败的原因.查
看此文件可以找到失败的原因.一个可行的方法是:使用root登录并且删除对
应用户home目录下的.dt目录,同时可以删除<home>;/.dtprofile文件, 然后使用
用户口令登录即可.外检查/usr/dt/bin/dtsessoin的使用权限.正确的权限应
当是-r-sr-xr-x
90 Q: 关于Solaris8上DHCP的配置问题安装Solaris8后,进程dhcpagent的CPU占用率一
直都超过88%, 请问有什么方法可以解决.谢谢.
A: I solve this program by going to the field sit.
The update period parameter can not be set longer than 2 weeks in the
DHCP server side.
91 Q(1)能否在Ultra60上只安装64位的Solaris8?
(2) Solaris8安装在Ultra60上,内核是32位还是64位?
(3)在其上安装的Oracle 8是安装的32位版本还是64位版本?
A: Solaris8 的内核是64位的, 但是,它同时带有32位程序的解释器,也就是说32位
的程序也可以在Solaris8上面运行。事实上Solaris8上面有一些系统命令就是
32位的程序,如link等。所有的Solaris8都是64位的,但是都带有32位的解释
器。(就现在的情况而言,32位的解释器是必 须的)。在Solairs 8上面运行
的应用程序可以是64位,也可以是32位的,包括Oracle 8在内
92 Q: 很感谢你的答复。原来不能创建用户的原因应该是文件系统已满,我删除了一
些用户账号后,创建正常。现在的问题是c0d0t0s0文件系统的容量太小,现在
已经达到100%,如何扩展这个文件系统,是否只有重装系统这一个办法?
A: 在系统安装时,各个分区划分的有些不太合理。/ 目录和 /usr 太小
/export/home和/tmp 太大。实际上在安装时,比较合理的办法是只设置 / 和
/tmp,/tmp最多 500M即可。然后在 / 上面建立/usr,/opt 和/export/home。
现在补救的办法是利用软link的办法:首先将一些在/或/usr中不太是系统直接
使用的目录(一定不可以包含/usr/sbin,/sbin, /etc,等等)转移到有空间的分
区上面,然后使用ln建立软连接。关于ln的使用可以man.这种办法是不得已而
为之。不是很好把握,搞不好就会死机,并且启动不起来。所以在进行此项活
动时,首先要备份数据,以免发生以上情况时丢失。如果您在下午下班的时间
可以抽出一点时间,最好还是将系统重新安装一遍的好。因为,每一个目录都
有一定的用意,一些软件的安装不是地方会让人感到很别扭。而使用软连接又
会降低系统的运行速度。
93 Q: 求助--请教一个多线程编程问题。关于我们发现的问题具体现象如下:
函数 void* A(void *pInput)
{
char szBuf[30000]; //this buffer maybe larger than 30,000
...
...
}
在多线程程序中,该函数在main中运行(此时相当于在主线程中运行)正常。
如果使用pthread_create创建一个线程,以A作为线程入口函数,用内存测试工
具purify可以观察到该线程运行过程中出现Beyond Stack Read、Beyond Stack
Write错误。如果把szBuf改为堆中分配的内存,则无此问题。据此,我们判断
是线程的栈空间溢出造成该问题。按资料描述,主线程的缺省栈空间大小为8M
,子线程缺省栈空间为2M;我们使用pthread_attr_setstack函数将子线程的栈
空间设置为8M,但仍未解决问题。后又将线程属 性设置为
PTHREAD_SCOPE_SYSTEM, 问题仍然存在。函数A以静态库方式由第三方提供,
我们现需要使之在一个子线程中运行,因此希望能够提供主线程与子线程差异
的资料,除堆栈空间、调度方式外,是否还有其他差别,造成以上错误的发生
A: In fact, there is no problem in the program. I think there is a bug
in their debug tool: purify. You can use dbx to debug your program.
94 Q: 请问一块硬盘上可以有两个Solaris分区吗?在一块硬盘上分了两个solaris分
区,一个是active的系统安装分区,另一个是后来用fdisk创建的,请问怎样把
第二个分区加入到solaris系统中使用。谢谢。
A: Yes, There can be up to six partitions in a disk. you can see the
partition using utility format. Command list:
#format
Then you will see the disks installed in you system.then select the
disks you are interested in. then print "partition" and then "print"
to see the partition information. The partition you want to add to
the system can be identified as c#t#d#s#. Make sure the mount point(
a empty directory in file system). such as /disk1.then run the
command:
#mount /dev/dsk/c#t#d#s# /disk1
run the command
#df -k
to verify the slice(partition) is properly installed.
95 Q: 请问在Solaris 2.7上,可以动态改变分区大小吗? 我的工作站划分分区不合理,
根分区太小,已经满了,可以使用工具动态改变吗?
A: No, If you want to modify it, the whole disk data will be lost.
In fact, I think it high time for you to re-instal the solaris
system. In the new installation. You really need just two partitions
swap and root. Leave no more than 1G to swap partition and all the
left to root.Don't forget to backup all you data before re-installation.
96 Q: 用CC编译器如何实现结构成员按字节对齐,类似于其他编译器的#pragma pack(1)
功能。
A: It is a standard compilation option(#pragma pack). It is also
supported in Solaris C.You can get documents about SC options from
http://sunlibray under workshop directory.
97 Q: 为什么SUN的本地界面有时候会出现死掉的情况,此时kill掉用户的dtsession
是否就可以恢复正常。如不能恢复正常还需要做那些操作。
A: In my experince, the interface dying, may be caused by other
application other than dtsession. You should determine which
program's interface causes the interface dying. This situation is not
often happens, and most of them happened when you are manipulating a
program's interface by mouse. When it happen, login the system from
network as "root" or the account which cause the dying, kill the
program.
98 Q: 系统不能启动, 任何二级目录都没有了,但用户下,所有命令都不能用,怎么
安装Solaris,能直接从光盘启动吗?
A: You harddisk is damaged. It may be salvaged manually, or can not.
You should restall the system. Or even worse, you should change your
harddisk.
99 Q: Can you tell me if I want to add a new CPU chip to a only one CPU
chip machine on solaris system,Can the application run continually in
the old cpu chip without interruption on solaris system ?
A: Please tell me the machine's type. If your machine is a workstation.
CPU chips can not be added without turning down the power. I don't
know so much in this field. But, I have forwarded this message to the
specitest in our company. You will get much more detailed answers.
But you should wait several days. Another way for you is to consult
the vender who sell you the machine directly.
100 Q: what's deference between the processor_bind() and pset_bind()?
A: You can get the differences between two functions by seeing the
manual:
# man processor_bind
# man pset_bind
101 Q: 我们有一个产品在移植到SOLARIS的过程中出现了大量难以理解的问题,请给
我们现场支援一下,非常感谢!使用Forte Develop6编译C++程序的时候出现
以下信息:
"mit/../teglobal.h", line 39: Warning (Anachronism): Attempt to redefine TRUE without using #undef.
"mit/../teglobal.h", line 40: Warning (Anachronism): Attempt to redefine FALSE without using #undef.
>;>; Assertion: (../links/prepexpression.cc, line 65)
while processing mit/multilock.cpp at line 0.
请问是什么意思,难道编译器还要assert吗?
A: CC 编译器要求被编译的文件以两个新行结束,请在相关头文件末尾加上新行。
102 Q: solaris的问题:激活小键盘上的Numlock,激活中文输入法,按小键盘上的0
键,中文输入法自行关闭,请问是何原因?
A: You can solve the problem you metioned by trying the following three
ways:
1. Make sure using GB locale, instead of GBK.
2. Visit http://sunsolve.sun.com to get the "recommended patches"
package for the your solaris platform, and add it.
3. If possible, you can change the solaris platform from solaris 2.7
to solaris 2.8
103 Q: 有关在SOLARIS上使用NETSCAPE问题
问题描述:
1.在SOLARIS2.6上安装NETSCAP4.04后,安装提示成功后,运行netscape,出现以
下错误信息:
xlib:connection to "0.0" refused by server
xlib:client is not authorized to server
can't open display : :0.0
2.在SOLARIS2.6上安装Acroread后,如何设置能直接点击打开.pdf文件,而无需
每次要先启动Acroread,然后再打开? 请问上述问题如何解决?
A: 1. You run the command:
#xhost <hostname>; :0.0
and then, you can use NETSCAPE In the terminal, in which the
netscape is launched, please set the envrionment DISPLAY as :0.0
2. Actually, I don't know how to configure it. If you are interested
in it. You can read some topics in AnswerBook2 User Collection.
104 Q: syslogd 如何支持汉字? syslogd 好像会把汉字拆分成两个字节,并去掉高位
如何解决?
A: How the background service provider syslogd supports character set
depends on the locale environment it starts. So, if you want Chinese
characters transferring by syslog. You can restart syslogd in
Chinese environment by issuing the following commands:
# LANG=zh; export LANG # set the locale environment in Chinese.
# kill -9 `cat /etc/syslog.pid` # to kill the former syslogd
# /usr/sbin/syslogd
If you want syslogd to support Chinese characters whenever the
machine boot. Put the attacted file in the /etc/rc3.d directory.Make
sure this file's mode is "rwxr-xr-x" and the owner is root.
105 Q: 我的工作站的交换分区分的太小了,除重装系统外,是否有其它办法将空间调
整一下。
A: You can extend your swap region by issueing the following command:
#mkfile <filename>; -m <size in million>;
#swap -a <filename>;
Note: the <filename>; should be the full path name.
106 Q: 用vi打开一个script文件,发现里面有非法字符^M,在vi命令行如何全程替代
掉该字符?我试了一下用以下命令来做,却不行:0,$s/^M// A: 1,$s/^M//g ,其中,^M是 ctrl+V ,ctrl+M,或者,用下面这个命令。
%unix2dos $filename >; $newfilename
107 Q: How to add space to a filesystem in solaris2.5.7 ? When I patchadd a
patch,It tell me that there is no sufficient filesystem capacity.
A: It seems like your root partition too small. Please check it
availiable size. If it is small, I think you would better to
reinstall the system. Please store all the data in the disk.
In the new installation, you need really to partitions, one is for
swap, and another is for /. The swap partition /tmp needs about 200M
to 500M. Then all the left should be given to /.
108 Q: 请教关于Solaris Patch的问题。我们在安装一些软件时,经常需要先安装一
些Patch,有一事不明,向您请教一下,比如某个软件需要Patch : 107546-02,
现在我的机器上已经安装107546-08,是不是就不用再安装107546-02了Patch
后面的那部分是什么意思?是不是大的数字可以包含小的数字的功能了? 同一
个Patch的不同版本之间会不会有冲突?
A: You are right. If you have installed a bigger version of the same
patch, it not necessary for you to install the smaller one. The
bigger version will override the earlier one if it installed before.
You need not worry about any collision.
109 Q: 关于sun的SunNet 我目前想了解关于sun的SunNet。我从sun的网站上了解到
SunNet已经被合并入到Solstice里了,我目前想试着把我做得程序集成到
SunNet或Solstice里,我看了Slostice得White Paper,但里边只提到了一点点
相关得Api,我从哪里,怎么才能到比较完全得文档呢?
A: To my knowledge, you can go to the following for a detailed info:
http://www.sun.com/software/sols ... ork/sunnetmgr.html.
110 Q: 关于SUN机器root口令丢失问题,如何解决?
A: 办法如下:
利用SOLARIS的启动盘来启动,然后把硬盘mount上去,修改硬盘上原etc目录
下的shadow文件,将root项里的password域内容删除,变成无密码。然后重新
启动主机,以无密码的root登陆后,重新设置root口令。具体步骤如下:
1.把你的solaris光盘放进cdrom
2.键入stop+a
3.当出现'ok'字样时,键入boot cdrom -s
4.cd /tmp/root
5.mkdir /tmp/root/xxx (xxx是什么鬼东西就无关紧要了)
6.mount /dev/dsk/c0t0d0s0 /tmp/root/xxx (在这里c0t0d0s0是你的root盘)
7.运行csh
8.setenv TERM vt220
9.cp /tmp/root/xxx/etc/shadow /tmp/root/xxx/shadow/shadow.bak
10.vi /tmp/root/xxx/shadow,并且将root项里的password域删除即可。
11.重启动,你就可以以无密码的root登陆了,登录后,更改root的密码。
111 Q: In solaris 2.6. when i use command "killall" ,all process started in
CDE will be killed and the eviroment will change to CDE login. I
looked up the man manual about "killall" ,it told me that "only root
can use the command".But I really use it with common id.In
solaris7 and solairs 8, with common id,i can't use the common.can
you tell me why i can execute "killall" successfully in solaris 2.6?
A: Just see the access mode of /usr/sbin/killall. If you can use it
with a common account identity, the access mode should be x-rsx-rx-r.
If you can not use it in a common account identity, the mode should
be x-r--r--r. You can change the mode as you like, whenever in 2.6,
or 2.7 or 2.8.
112 Q: I downloaded the SDM2.3 from the Download Center of "www.sun.com"
,read the White Paper and web detailed describing.But it is only the
outlook of the software. I need the detailed document about how to
integrated my own network management application to Solstice.
A: I transfer this messag to Sun Service in Guangdong.
113 Q: 请问有没有磁盘管理工具。我们有一台E450,有5块硬盘,想做RAID,但是没有工
具.
A: If the machine's OS is solaris 2.8, the storage management software
is also installed in you machine. You can make the RAID by issuing
the command family: /usr/sbin/meta*; If you are not so familiar with
these commands. I can do it for you. or you can use solstice
disksuite, it is a GUI tool.
114 Q: 怎样强制更改NIS客户端的本地NIS数据表?有时候NIS客户端和NIS服务器端有
时会出现不一致的情况.NIS服务器和NIS slave 服务器也会出现这种情况。
A: 你可以用yppush和 ypxfr 来做这种工作,更常见的方法是把它们写进cron,定
期更新,具体步骤请查阅Answerbook.
115 Q: 为了将工作站设为从DHCP动态分配IP,并且将主机名由"unknown"改为原名
修改了/etc/init.d/rootusr,将dhcpinfo后面三行(不是四行)注释掉;
hostname=`/sbin/dhcpinfo Hostname`
# case $? in
# 0) [ -z "$hostname" ] && hostname='unknown' ;;
# 2) try_dhcp=no ;;
esac
重启后,提示:
/sbin/rcs:ysntax error at line 143 : 'esac' unexpected
INIT:cannot creat /var/adm/utmp or /var/adm/utmpx
INIT:SINGLE USER MODE
输入root口令后,只能运行在单用户模式,且vi、ls等都不能用(#vi:not found)
如何才能打开/etc/init.d/rootusr文件进行修改,恢复正常状态。
A: 请找一个SOLARIS的安装启动盘,使用以下方法可以修改rootusr文件,步骤如
下:
1.把你的solaris光盘放进cdrom
2.键入stop+a
3.当出现'ok'字样时,键入boot cdrom -s
4.cd /tmp
5.mkdir /tmp/xxx (xxx是什么东西无关紧要,随便取一个名字,如test)
6.mount /dev/dsk/c0t0d0s0 /tmp/xxx (在这里c0t0d0s0是你的root盘)
7.运行csh
8.setenv TERM vt220
9.vi /tmp/xxx/etc/init.d/rootusr,把esac那行也注释掉即可。
10.把solaris光盘拿出,reboot,重启动即可。
116 Q: 一台Ultra60工作站,其固定IP为10.11.105.247,用ifconfig hme0 dhcp
start总是失败,如下所示。
# netstat -a|grep 4999
# ifconfig hme0 dhcp start
May 7 20:11:11 hwMusa01 dhcpagent[478]: ERROR! Address 10.11.105.147
is already in use ifconfig: internal error in DHCP agent
# netstat -a|grep 4999
localhost.4999 *.* 0 0 0 0 LISTEN
localhost.4999 localhost.1023 32768 0 32768 0 TIME_WAIT
抓包发现是dhcp服务器offer的IP地址10.11.105.147被decline了。手工运行
dhcpagent,提示4999端口被使用了。以前此工作站曾配置为固定IP:
10.11.105.147,但现在已改为10.11.105.247并重启过多次。请问,可能是什
么原因导致dhcp失败??
A: 导致问题出现的原因是,由于客户机在申请原来的被保留分配的IP时,服务器
发现这个IP不能够被使用(已经有其它机器使用了这个IP地址)。使客户机申
请失败,并且使其中的某些进程不能正常退出,继续占用了端口4999而使后面
的申请不能进行。办法是找到占用端口4999的进程,杀掉即可。找到这个进程
的办法是,这个申请进程是带有dhcp字样的。
# ps -e | grep dhcp
会出现一到两个进程号。验证这些进程是否占用了4999是看进程打开的文件:
# /usr/proc/bin/pfiles #pid
早到进程然后杀掉。这样就可以继续启动Client 端的dhcp申请。注意,修改
服务器的设置使新的申请可以成功。
117 Q: 我们有一台Natra T1,它的/tmp目录已经长到90%,如果目录满了是否会使系统
运行异常.(因为我们运行的业务不能停,故不能重启SUN机器来让系统清空该目
录,也不能直接清空该目录,应为应用程序正在运行.)下面是一些数据:
# df -k
Filesystem kbytes used avail capacity Mounted on
/proc 0 0 0 0% /proc
/dev/dsk/c0t0d0s0 1258491 51942 1143625 5% / /dev/dsk/c0t0d0s6 1612343 500741 1063232 33% /usr
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t0d0s3 33099 9211 20579 31% /var
/dev/dsk/c0t0d0s7 13550703 838475 12576721 7% /export/home
/dev/dsk/c0t0d0s5 30743 10319 17350 38% /opt
/dev/dsk/c0t0d0s1 548687 369368 124451 75% /usr/openwin
swap 627864 563360 64504 90% /tmp
# cd tmp
# ls
ps_data
# ls -a -l
total 98
drwxrwxrwt 6 sys sys 443 May 7 15:29 .
drwxr-xr-x 22 root root 512 Mar 20 17:45 ..
drwxrwxr-x 2 root root 176 Feb 27 23:18 .X11-pipe
drwxrwxr-x 2 root root 176 Feb 27 23:18 .X11-unix
drwxrwxrwx 2 root root 179 Feb 27 23:18 .pcmcia
drwxrwxrwt 2 root root 327 Feb 27 23:18 .rpc_door
-rw-rw-r-- 1 root sys 5056 Feb 27 23:18 ps_data
# cd .pcmcia
# ls -a -l
total 32
drwxrwxrwx 2 root root 179 Feb 27 23:18 .
drwxrwxrwt 6 sys sys 443 May 7 15:35 ..
prw-rw-rw- 1 root root 0 Feb 27 23:18 pcram
# cd ..
# pwd
/tmp
# cd .rpc_door
# ls -a -l
total 32
drwxrwxrwt 2 root root 327 Feb 27 23:18 .
drwxrwxrwt 6 sys sys 443 May 7 15:36 ..
Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.1
Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.2
Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.3
# cd ..
# cd .X11-pipe
# ls -a -l
total 32
drwxrwxr-x 2 root root 176 Feb 27 23:18 .
drwxrwxrwt 6 sys sys 443 May 7 15:37 ..
-rw-rw-rw- 1 root root 0 Feb 27 23:18 X0
# cd ..
# ls
ps_data
# cd .X11-unix
# ls -al
total 32
drwxrwxr-x 2 root root 176 Feb 27 23:18 .
drwxrwxrwt 6 sys sys 443 May 7 15:38 ..
srwxrwxrwx 1 root root 0 Feb 27 23:18 X0
等待您的回答,谢谢
A: 我认为是系统统计信息错误的, 本人的经验是当/tmp的使用率超过10%时,系统就
变的很慢了。出现这种情况,首先,要检查系统中运行的程序有没有不停分配内存,
却没有释放(指自己开发的程序)。另外看一下系统对/tmp的swap交换情况。使用工
具sar 和iostat 都可以看到。关于sar和iostat的用法, 可以看man即可。
118 Q: 有一用MOTIF 写的程序,运行之后不能显示中文(乱码),由于显示的信息是
不固定的,故不能使用资源文件.怀疑程序中与创建字体时使用了以下的函数
有关,但注释掉后也一样:
font1=XLoadQueryFont(XtDisplay(toplevel), "-*-screen-bold-r-normal--12-*";
font2=XLoadQueryFont(XtDisplay(toplevel), "-*-screen-bold-r-normal--14-*";
font3=XLoadQueryFont(XtDisplay(toplevel), "-*-screen-bold-r-normal--16-*";
fontlist=XmFontListCreate(font1, "charset1";
fontlist=XmFontListAdd(fontlist, font2, "charset2";
fontlist=XmFontListAdd(fontlist, font3, "charset3");
运行环境是ULTRA 60 ,Solaris 2.6 ,安装了中文环境。编译环境是SUN C++ 4.0 。
还怀疑与LANG 相关,曾试过设置为zh ,chinese 等也不行,请教此问题如何解决?
A: 实际上,关于选择字体和字符集可以看<Font Administrator Guide>;这个资料,使
用系统提供的标准工具来从中间找到系统中存在的字体和字体的名称。这个资料在
Answer Book 的System Administration Collection 中。 实际上,上面的问题不
出现在字体的选择上面, 而是在MOTIF中在选择框的使用设置中还要设置一次字体
119 Q: 请问SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式吗?Ultra系
列的机器是否也能支持呢?
A: SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式,可以使用
SunCluster软件实现;Netrat系列电信服务器也支持;Ultra系列的机器,不
在支持的列表中。但是,“双机热备+磁盘阵列”的具体含义应该搞清楚。推
荐的文档在sun cluster collection 中。
120 Q: 我在一个JAVA程序中打开50个SOCKET端口,结果出现异常:
java.net.SocketException:Too many open files
请问如何解决此问题?谢谢!另外,请问在一个JAVA进程中可以同时启动的线
程数是多少?最大线程数受什么限制?能否达到240个线程?谢谢!如上问题
如果可以通过修改配置来解决的话,会有什么样的负面影响?
A: You have two ways to modify the limit number of files that a process
can open simutanously.
One: modify the /etc/system file add the following entry:
set rlim_fd_cur = #n
#n is the number you want. Should be no more than 1024.
You should reboot the machine.
Two: Use the system command: ulimit
$ulimit -n #n
Note: You should use B-shell.
And using the same terminal session(in the same terminal
window) to run the your application program( to guarantee your
application process is a child process of the setting
terminal.)You can man ulimit to see the detailed usaged.
The disadvantage brought by incread the file limite for a
process or the whole system is increasing the system memory
usage. But, for today's machine, this disadvantage is not too
expensive. (William said There is no limit for max open
socket number in Java. But the operating system has a limit for
max open file descriptors.A socket resource is treated as a
file descriptor in Unix. The previous email answered your
question. You can try as said.
121 Q: 我想把一个HP平台上运行的B SHELL 脚本在SOLARIS 2。6上运行,但是出现了
问题:要运行的脚本部分:
command_count = 0
command_item[$command_count]=check_AutoRaid
command_count=`expr $command_count + 1`
command_item[$command_count] = check_system_resource
command_count=`expr $command_count + 1`
command_item[$command_count]= check_diskspace
command_count=`expr $command_count + 1`
command_item[$command_count]= check_bill_record
command_count=`expr $command_count + 1`
zghh (2007-9-27 13:35:09)
chen_7733 (2007-9-27 15:35:27)
唉.....
垃圾.....
Charele (2007-9-29 08:50:15)
这么好的东东应该置顶!让每个学习Sun,学习Soralis的人看看!
sun029 (2007-9-29 10:38:03)
目录
第一部分:Sun基础知识
一.SUN发展简史
(一)硬件体系
(二)软件体系
二. PROM状态命令与参数
(一)指令集
(二)环境变量
三.系统安装
四.UNIX 命令
(一)基本命令
1.ls 显示文件名,等同于dos下dir命令
2.cd 目录转换,等同于dos下cd命令
3.pwd 显示当前路径
4.cat 显示文件内容,等同于dos下type命令
5.more 以分页方式查看文件内容.
6.rm 删除文件
7.mkdir 创建目录
8.rmdir 删除目录
9.cp 文档复制
10.mv 文件移动
11.du 查看目录所占磁碟容量
12.find 文件查找
13.man 随机文档
14.vi 编辑器
(二) 增强命令
1.ln 文档连结
2.grep 搜索字符串
3.fgrep 搜索字符串
4.file 显示文件类型
5.diff 比较文档或目录之不同内容
6.cmp 比较文档相同部分
7.ftp 远程文件传输
8.telnet 远程终端访问
9.IO 重新导向
第二部分 SUN系统管理
五.用户管理
(一) 用户基本知识
1.文件信息
2.缺省权限
3.系统安全文件
(二)相关命令
1.chmod 改变文档或目录之属性
2.chown 改变文档或目录之拥有权
3.chgrp 改变文档或目录之群组拥有权
4.touch 改变文档或目录之最後修改时间
5.who 查看系统注册用户
6.id 查看当前用户用户号和组号
7.passwd 修改用户口令
8.su 转换用户
(三)SHELL特点
1. s olaris三类shell
2. B shell
3. C shell
4. dtterm
(四) 创建,删除用户帐户
六.文件系统管理
(一)硬盘和文件资源
1. 逻辑硬盘设备命名的约定
2.dmesg命令
3.showrev 命令
(二)硬盘分区
1.format实用程序
2.newfs 创建文件系统
3.fsck 修复文件系统
(三)挂接文件资源
1.mount 文件系统挂接
2.df 显示文件系统所占用的硬盘空间
3.umount 摘下文件资源
(四) 自动挂接文件资源
(五)NFS资源
1.share,shareall 共享文件资源
2.dfshares 显示远程机共享资源
3.mount 挂接远程文件资源
4./etc/dfs/dfstab 自动挂接
(六)卷管理
(七)自动安装文件系统
七.进程管理
1.ps 显示进程号
2.kill 清除进程
3.nohup非挂起运行
八.软件包管理
1.pkginfo 显示软件包信息
2.pkgadd 增加软件包
3.pkgchk 校验软件包的安装
4.pkgrm 删除软件包
5.spooling 软件包转储
九. 数据备份和传输工具
(一) 数据设备名
(二) 数据备份命令
1.ufsdump命令
2.ufsrestore命令
3.tar命令
4.cpio命令
5.compress,uncompress,zcat 命令
6.mt 命令
7.dd 命令
8.异地使用磁带机(必须为可信任用户,)
十.改变运行等级
(一)系统引导
(二)系统操作等级
1. 运行等级说明
. 显示运行等级
3.关闭系统的原因
4.关闭系统(shutting down)
(三)例子:
1.增加一个磁带机并完成重新配置引导:
2.从挂起的工作站上恢复
3.从轻微问题中恢复
4.从重要问题中恢复
第三部分 网络配置
十一.网络应用配置
(一) 网络基本配置文件
(二) 远程访问命令
(三)访问鉴别相关文件
(四)网络监控
1.rusers 标识网络上注册用户
2.rup 标识网络上主机
3.ping 检测主机连接状况
4.netstat 显示与网络有关的各种数据结构
5.ifconfig 显示网络接口
6.route 路由设置
7.arp 反响解析
8.nfsstat 监控NFS
第四部分 系统应用
十二.图形窗口配置
1.双屏配置
2.显卡分辨率调整
3.XWININFO 分辨率确认
4.XHOST XSERVER访问控制
5.OPENWIN 初始化
6.CDE桌面初始化
7.终端窗口控制字符
十三.系统统计
1.PRTCONF 系统信息
2./USR/PLATFORM/SUN4U/SBIN/PRTDIAG -V
3.SYSDEF 系统信息
4.EEPROM 显示机器IDPROM变量
5.VMSTAT 监视CPU和内存
6.MPSTAT 监视多个CPU状态
7.IOSTAT 监视磁盘状态
8.UPTIME 显示系统运行时间以及在过去的15分钟内系统的负载情况
(2007-09-29 10:38:03, Size: 27.3 KB, Downloads: 1698)
[ 本帖最后由 sun029 于 2007-9-30 22:27 编辑 ]
sun029 (2007-9-29 10:39:21)
(一)基本命令
1.ls 显示文件名,等同于dos下dir命令
命令格式:ls [option] file
option:
-l 显示详细列表
域1 :文件类型和文件权限
域2 :文件连接数
域3 :文件所有者名字
域4 :文件用户组名字
域5 :文件长度
域6-8 :最近修改日期
域9 :文件名
-a 显示所有文件,包含隐藏文件(以. 起头的文件名)
-R 显示文件及所有子目录
-F 显示文件(后跟*)和目录(后跟/)
-d 与l选项合用,显示目录名而非其内容
2.cd 目录转换,等同于dos下cd命令
注意目录分隔符为“/”,与dos相反
命令格式:cd dirname
3.pwd 显示当前路径
4.cat 显示文件内容,等同于dos下type命令
命令格式:cat filename
5.more 以分页方式查看文件内容.
命令格式:more filename
6.rm 删除文件
命令格式: rm [-r] filename (filename 可为档名,或档名缩写符号.)
例子 :
rm file1 删除档名为 file1 之文档.
rm file? 删除档名中有五个字符,前四个字符为file 之所有文档.
rm f* 删除档名中,以 f 为字首的所有文档.
rm -r dir1 删除目录 dir1,及其下所有文档及子目录.
7.mkdir 创建目录
命令格式: mkdir [-p] directory-name
例子:
mkdir dir1 建立一新目录 dir1.
mkdir -p dir/subdir 直接创建多级目录
8.rmdir 删除目录
目录必须首先为空
命令格式: rmdir directory
9.cp 文档复制
命令格式: cp [-r] source destination
例子:
cp file1 file2 将文档 file1 复制成 file2
cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.
cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,
档名仍为 file1.
cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名
为file2
cp -r dir1 dir2 (recursive copy) 复制整个目录.
若目录 dir2 存在,则将目录dir1,及其所有文档和子目录,
复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,
则将dir1,及其所有文档和子目录,复制为目录 dir2.
10.mv 文件移动
命令格式: mv source destination
例子:
mv file1 file2 将文档 file1,更改档名为 file2.
mv file1 dir1 将文档 file1,移到目录 dir1 下,档名仍为 file1.
mv dir1 dir2 若目录 dir2 存在,则将目录 dir1,及其所有档
案和子目录,移到目录 dir2 下,新目录名称为 dir1.
若目录 dir2 不存在,则将dir1,及其所有文档和子
目录,更改为目录 dir2.
11.du 查看目录所占磁碟容量
命令格式: du [-sk] directory
例子 :
du dir1 显示目录 dir1 的总容量及其次目录的容量
du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量
12.find 文件查找
命令格式: find dir -name filename command
例子:
find . -name hello -print 寻找目前目录及所有的子目录内叫
hello的文档.
find . -ctime +7 -print 找出七天内未被更动的文档
find . -size +2000m -print 找出大小超过2000 bytes的文档
find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档
find . -name '*.c' -exec rm {} 删除所有的.c档
find . -name test\* -print 显示当前目录及其子目录文件名前4
位为test的文件名
13.man 随机文档
例子:
man ls | col –b >;ls.txt 生成文本文档
catman –w –M /usr/man 生成索引关键字
man –k keyword 关键字查找
man –s number word 不同系统类别
example: man –s 3s printf
14.vi 编辑器
命令状态:
j,k,h,l:上下左右
0: 行首
$: 行尾
i,I :插入命令,i 在当前光标处插入 I 行首插入
a,A:追加命令,a 在当前光标后追加,A 在行末追加
o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行
r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换
数字s: 替换指定数量字符
x: 删除光标处字符
dd: 删除当前行
d0: 删除光标前半行
d$: 删除光标后半行
ctrl+f :后翻页
ctrl+b:前翻页
G : 文件尾
数字G: 数字所指定行
/string 查找字符串
n 继续查找
N 反向继续查找
% 查找对应括号
u 取消上次操作
ex命令状态
:set number 显示行号
:set smd 显示显示状态
:0 文件首
:1,5 copy 7 块拷贝
:1,5 del 块删除
:1,5 move 7 块移动
:1,$s/string1/string2/g 全文件查找string1并替换为string2
:wq! 存盘退出
(二) 增强命令
1.ln 文档连结
命令格式:ln [-s] oldname newname
同一文档,可拥有一个以上之名称,可将文档做数个连结.
一个符号链是指向系统另一个文件的特殊文件,当访问这种文件时,它里面存放着
一个路径名,该路径名用来引导用户到卡符号链所指的文件或目录
例子 :
ln -s file1 file2 将名称 file2,连结至文档 file1.
2.grep 搜索字符串
命令格式:
grep string filename
寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观
念.以下是一些简单的□例,以及说明:
^M 以M开头的行,^表示开始的意思
M$ 以M结尾的行,$表示结束的意思
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行
^b.503 句点表示任一字母
* 星号表示0个以上的字母(可以没有)
+ 加号表示1个以上的字母
\. 斜线可以去掉特殊意义
<eg>; cat passwd | grep ^b 列出大学部有申请帐号者名单
cat passwd | grep ^s 列出交换学生申请帐号者名单
cat passwd | grep '^b.503' 列出电机系各年级...
grep '^\.' myfile.txt 列出所有以句点开头的行
3.fgrep 搜索字符串
命令格式:fgrep string file
4.file 显示文件类型
命令格式:file fileall
文件类型为shell script,ELF 32bit,ASCII text,data or tar file
5.diff 比较文档或目录之不同内容
命令格式:diff [-r] name1 name2 ( name1 name2 可同时为档名,或目录名称.)
例子 :
%diff file1 file2
比较文档 file1 与 file2 内,各行之不同处.
%diff -r dir1 dir2
比较目录 dir1 与 dir2 内,各文档之不同处.
6.cmp 比较文档相同部分
命令格式:cmp file1 file2
7.ftp 远程文件传输
命令格式: ftp [hostname|IP address]
在进入 ftp 之後,如果与 remote host 连接上了,它将会询问你 username
与密码,如果输入对了就可以开始进行文档传输.
注意:如用户无密码,无法注册
(1) ftp 命令
ascii 将传输模式设为 ascii 模式.通常用於传送文字档.
binary 将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像
cd remote-directory 将远程主机上的工作目录改变.
lcd [ directory ] 更改本地主机的工作目录.
ls 列出远程主机上的文档.
get remote [ local-file ] 取得远方的文档.
mget remote-files 可使用通用字元一次取得多个文档.
put local[ remote-file] 将本地主机的文档送到远程主机.
mput local-files 可使用通用字元一次将多个文档放到远程主机上.
help [ command ] 线上辅助指令.
mkdir directory-name 在远程主机创建一个目录.
prompt 更改交谈模式,若为 on 则在 mput 与 mget 时每作一个文档之传输时均会询问.
quit/bye 离开ftp .
(2) 后台执行ftp
1.首先,将过程所用到的指令依顺序放入文档中,如下:
%cat ftp_command
!mkdir test
lcd test
cd test
prompt
binary
mget *.*
bye
2.其次,建一个.netrc档,属性为400,让ftp 自动到此读取Username
与Password,方可顺利login 到的主机,如下:
%cat .netrc
machine remote login anonymous password guest
3.最後再执行下面指令即可.
%nohup ftp remote < ftp_command >; message &
8.telnet 远程终端访问
命令格式:
telnet [hostname|IP address]
*注:如使用root用户登录,其权限请参见11.3.4
9.IO 重新导向
UNIX所有的程式执行时,均需要资料的输入以及输出资料.一般而言,资料是
从键盘输入,并将资料输出到萤幕上,这就叫做标准输入及标准输出,而我们
可以更改标准出输出入.
A. 更改标准输入 —— 在命令後方加"< <filename>;" ,即可从<filename>;这
个文档输入资料.
B. 更改标准输出 —— 在命令後方加">; <filename>;" ,即可将萤幕输出的资
料导向到<filename>;这个文档上.
C. 更改标准输出 —— 在命令後方加">;>; <filename>;",功能与B.相似,只不
过这会将资料加在文档後方.
D. 管道 —— 在两个命令中间加上'|',即可将前方指令的输出当成後方指令
的输入.
例:
cd /tmp
ls -l >; /tmp/ls.out
cat /tmp/ls.out
more /tmp/ls.out
rm /tmp/ls.out
ls | more
ls | wc -l (word count, count line number,算出文档数目)
软件包管理
1.pkginfo 显示软件包信息
命令格式: pkginfo -d[ device|pathname] -l pkg_name
例子:
这三个域为:
pkg_category 软件包种类,可为application,graphics 或system.
pkg_name 软件包名字,如为SUN产品则机SUNW 起 头.
Description 软件产品的简单说明.
例子:
# pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 |more
利用pkginfo -l 命令显示关于软件包的详细信息,包括软件包的大小(按硬盘块大小
计算).
# pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 -l SUNWaudio
上面输出的最后一行指示软件包的大小. 利用此信息和df -k命令来确定你是否拥有足
够硬盘空间来安装此软件包.
2.pkgadd 增加软件包
利用pkgadd 命令增加软件包,当软件包被成功地安装以后,向root发送一个邮件.
命令格式:
pkgadd -d [device | pathname] pkg_name
例子:
# pkgadd -d /cdrom/solaris_2_2/s0/Solaris_2.2 SUNWaudio
3.pkgchk 校验软件包的安装
pkgchk命令通过将软件包的属性及路径名内容与系统记录文件中的值进行对比来校验.
命令格式:
pkgchk [-p path1 [path2...]]
此命令可以检查整个软件包或通过指定-p选项对一特殊路径名进行检查,无输出则意味
着没有问题被检查出.
由于/etc/group 文件大小已被改变,所以文件内容的checksum就不对.
考察软件包信息
pkgadd命令更新文件/var/sadm/install/contents、 此文件为系统中所有已安装软件包
的记录文件.
没有简单的方法来确定某软件包具有某一特殊文件(或命令).
对于已安装的软件包,从/var/sadm/install/contents 记录文件中查找此软件包的路径
名.
4.pkgrm 删除软件包
命令格式: pkgrm pkgname1 pkgname2 …
在调用pkgrm 命令后,将向你警告有依赖关系的软件包信息,并提供放弃此操作的提示.
当软件包被成功地删除后,向root发送一个邮件.
pkgrm命令通过文件/var/sadm/install/contents 来确定软件包的地址,并且当软件包
被删除以后,更新此文件.
假如此软件包被两个或更多的包共享,则一定得将这些依赖于此包的所有软件包删除以
后才删除此软件包.
5.spooling 软件包转储
一个软件包可以由安装CD-ROM中拷贝过来存放在系统中,但并没有安装此软件包.
例如,一个服务器可以拷贝存储一个软件包,一个没有CD-ROM设备的系统可以从服务器
上挂接此软件包,用以安装.
服务器
下面两个pkgadd命令用以说明如何spool一个软件包到/var/spool/pkg目录下或到一个指
定的目录下.pkgadd命令的-s spool选项会缺省地将软件包拷贝到/var/spool/pkg目录下.
你可以指定一个目录作为-s选项的参数.
客户
假如服务器共享了/export/pkgs目录,则客户系统可以挂接目录/export/pkgs并安装
软件包.
# mkdir /export/pkgs
# mount venus:/export/pkgs /export/pkgs
# pkgadd -d /export/pkgs SUNWaudio
删除Spooled软件包
在服务器上可以利用-s选项从spooling目录中删除一个软件包.
# pkgrm -s /export/pkgs SUNWaudio
与软件包管理有关的文件和目录
/var/sadm 包含系统记录文件和管理文件的目录
/opt/pkgname 安装未随操作系统一起提供的、名为pkgname的软件包的推荐目录.
/opt/pkgname/bin
/opt/bin 未随操作系统一起提供的、名为pkgname的执行文件的推荐目录.
var/opt/pkgname
/etc/opt/pkgname 未随操作系统一起提供的、名为pkgname的记录文件的推荐目录.
/var/sadm/install/contents 整个系统的软件包映象.
数据备份和传输工具
(一) 数据设备名
1.磁带
类型 设备名 容量 持续速率 突发速率 机器类型
8mm D8112 5G-10G 8205
8mm D8160 7G-14G 8505-8705
8mm D8170 20G 1MB/s 5MB/s 8900
4mm DDS1(60m) 1.3G
4mm DDS2(120m) 4G-8G
4mm DDS3(125m) 12G-24G 1MB/s 10MB/s
设备名: /dev/rmt/0,/dev/rmt/0n(不倒带)
2.软盘
设备名:
/dev/fd0或/dev/rdiskette 未运行卷标管理
/vol/dev/aliases/floppy0 运行卷标管理
3.文件
(二) 数据备份命令
Solaris 2.x计算环境提供了几个命令用于备份和恢复文件和文件系统.
多卷备份 连接 系统跨接
ufsdump
ufsrestore Yes No No
tar No Yes Yes
cpio Yes Yes Yes
1.ufsdump命令
对系统管理员而言,ufsdump命令很有用,可对整个文件系统做完全或增量转储.
完全转储是对整个文件系统做备份.在较长的间隔做一次,如一星期或一月.
增量转储是对新创建或修改的文件进行备份.增量转储更频繁一些,可能一天一次.
ufsdump命令提供了不同等级的转储,从0至9.转储等级用来确定对哪些文件备份.0级指定
完全转储,1至9指定不同等级的增量转储.例如,增量转储(1等级)将对在上一次低等级
(0级)转储后修改或创建的文件进行备份.对文件系统作备份时,应将系统转至运行等级S.
如系统在运行等级3时,文件可能正在使用,于是可能造成无效备份.
例子:
# ufsdump 0uf /dev/rmt/0 /export/home
选项及参数:
0 指定0级(完全)转储.
u 更新文件/etc/dumpdates,以记录成功的转储.
f 与下面的/dev/rmt/0参数一起确定转储的磁带设备.
/dev/rmt/0 转储的磁带设备.
/export/home 指定要转储的文件系统.
2.ufsrestore命令
ufsrestore命令从备份磁带上拷贝文件至当前目录下.
ufsrestore命令可用于重载转储好的整个文件系统或备份带上的单个或多个文件.
ufsrestore命令的选项用来指定磁带设备名和被恢复文件的路径名.
恢复过程
用ufsrestore命令按以下步骤恢复一个文件:
# cd /newdir
# ufsrestore tuf /dev/rmt/0
文件系统拷贝
#mount /dev/dsk/c0t1d0s0 /mnt
#ufsdump 0f - /dev/rdsk/c0t0d0s0|(cd /mnt; ufsresotre rf -)
#installboot /usr/platform/`uname -I`/lib/fs/ufs/bookblk raw-device
3.tar命令
tar命令是用户级的备份命令,用于备份和恢复文件或目录.
命令格式: tar options tape_device_name [filename]
option c-建立新文档 v-显示路径
t-显示文件列表 f-指定设备
x-抽取文件 i-交互式
例子:
(1)备份过程:
$ tar cvf /dev/rmt/0 *
(2)恢复过程:
$ tar xvf /dev/rmt/0
(3)目录复制
$ tar cvf - mydir|(cd newdir;tar xvf -)
(4) 异地拷贝(必须为可信任用户,参见11.3)
$ tar cvf - mydir|rsh remote tar xvf - ;拷贝mydir目录至远程主机
$ rsh remote tar cvf – mydir|tar xvf - ;拷贝远程主机mydir目录至本机
4.cpio命令
cpio(copy in/out)命令是能产生多卷备份的用户级命令.
命令格式:
cpio -ov >;tape_device_name
cpio -i [vt] <tape_device_name
一旦它识别出介质的尾部,它就提示你插入另一磁带.
cpio命令利用ls或find命令的输出进行文件列表,将这些文件输出到一个文件,
如磁带设备.它在文件之间插入标题以便于恢复,所以比tar命令慢.
cpio命令可用通配符作为参数,然而,cpio反着用通配符,即除满足匹配条件的
文件以外,它将备份所有文件.
备份过程
$ find . -depth -print | cpio -ov >; /dev/rmt/0
find命令给cpio命令提供文件和目录名的列表.
-o选项表示从标准输出读.
/dev/rmt/0参数确定磁带设备.
例子:
用find和cpio命令将主目录备份到磁带上:
恢复过程
用cpio命令按以下步骤从磁带上检索文件和目录.
1.将磁带插入磁带设备.
2.改变目录至/tmp目录.
3.用以下cpio目录确定要恢复的文件的路径名.
$ cpio -iv < /dev/rmt/0
-i选项抽取文件,v(verbose)选项与t选项合用则按ls -l格式列出文件,
使用此复合选项只显示文件信息,不抽取文件.
4.用以下cpio命令恢复文件至/tmp目录.
$ cpio -iv < dev/rmt/0 test.file
选项i抽取文件,v表示恢复时显示文件名.
5.从目录/tmp拷贝文件至所需目录.
6.取出磁带.
下面的例子说明如何用cpio命令恢复一个文件.
5.compress,uncompress,zcat 命令
compress命令利用一特殊格式来压缩文件,以减少文件大小.压缩比从20%至80%.
例如,用-v选项对名为bin.file的文件进行压缩:
此文件被压缩后,加上后缀.Z.
zcat < file.taz|tar xvf -
6.mt 命令
mt -f /dev/rmt/0 status 报告设备状态
mt -f /dev/rmt/0 rew 倒带
mt -f /dev/rmt/0n fsf 1 前进一段
mt -f /dev/rmt/0n bsf 3 后退两段
7.dd 命令
dd if=/dev/rmt/0 of=/tmp/file bs=1024
8.异地使用磁带机(必须为可信任用户,参见11.3)
(1)备份数据至异地磁带机
tar cvf - dirname|rsh remote dd of=/dev/rmt/0
(2)从异地磁带机读取数据
rsh remote dd if=/dev/rmt/0|tar xvf -
用户管理
(一) 用户基本知识
1.文件信息
ls -l
drwxrwxrwx filename
(1)访问权限
mode : rwx rwx rwx r:read w:write x:execute
user group other
缩写 : (u) (g) (o)
(2) 文件类型
- : 普通文件
b : 块特殊文件,如硬盘和CDROM设备
c : 字符文件设备或称“raw”设备文件
l : 符号连接
p : 管道或流,用于进程通讯
d : 目录
2.缺省权限
创建文件和目录时,系统自动设置一定的权限.缺省权限由用户mask码控制
$umask 显示用户umask码
umask 设置 文件 目录
022 新文件属主有读权和修改权 用户组和其他用户有读权和修改权
用户组和其他用户只有读权
可用umask maskvalue 改变缺省权限
3.系统安全文件
/etc/passwd 用户注册表
/etc/shadow 加密口令
/etc/group 用户组
/etc/default/login 访问控制
说明:
passwd文件是为系统中的用户授予和认证访问权限的第一个文件,其项目使用’:’ 分割.
login_name:passwd_field:UID:GID:comment:home_directory:default_shell
login_name 用户唯一登录名 comment 注释(finger使用)
passwd_field 加密口令安全标记 home_directory 用户注册家目录
UID 用户号 default_shell 命令解释器
GID 用户缺省唯一组号 默认:sh,csh,ksh
shadow 文件管理用户加密口令,该文件只对超级用户有读权限
login_name:encrypted_pass:last_change:min:max:warn:inactive:expire:reserved
login_name 用户名(同passwd) max 口令有效最大天数
encrypted_pass 13字符长加密口令 warn 口令到期前多少天警告
last_change 上次更改日期(from1970.1.1) inactive 被禁止登录前,帐号不活跃天数
min 最小间隔天数 expire 用户禁止登录绝对日期(通常空白)
group文件用于将计算机系统的用户分组
groupname:passwd:gid:user-list
groupname 唯一组名 gid 为操作系统提供的代表组名的唯一标识号
passwd 组加密后的口令 user-list 用逗号分割的所有可访问该组的用户清单
理解UID和GID
系统中的每一个用户名都被赋予了一个UID(User Identification Number 用户标识号),这些
号在0-60000之间,系统使用UID将一个用户名和操作系统对该用户的标识等同起来,
建立用户时,必须保证UID唯一。
GID(Group Identification Number,组标识号)遵循与UID一样的格式,范围0-60000,
每个用户至少属于一组,并且可以属于多组。
(二)相关命令
1.chmod 改变文档或目录之属性
命令格式:chmod [-R] mode name
( name 可为档名或目录名;mode可为 3 个 8 位元之数字,或利用ls -l命令,列出
文档或目录之读、写、执行允许权之文字缩写.)
例子 :
%chmod 755 dir1 将目录dir1,设定成任何使用者,皆有读取及执行之权利,
但只有拥有者可做修改.
%chmod 700 file1
将文档file1,设定只有拥有者可以读、写和执行.
%chmod u+x file2
将文档file2,增加拥有者可以执行之权利.
%chmod g+x file3
将文档file3,增加群组使用者可执行之权利.
%chmod o-r file4
将文档file4,除去其它使用者可读取之权利.
%chmod a-r file4
将文档file4,除去所有使用者可读取之权利.
2.chown 改变文档或目录之拥有权
命令格式:chown [-R] username name ( name 可为档名或目录名.)
例子 :
%chown user file1 将文档 file1 之拥有权,改为使用者 user 所有.
%chown -R user dir1 将目录 dir1,及其下所有文档和子目录之拥有权,
改为使用者 user 所有.
3.chgrp 改变文档或目录之群组拥有权
命令格式:chgrp [-R] groupname name ( name 可为档名或目录名 )
例子 :
%chgrp vlsi file1
将文档 file1 之群组拥有权,改为 vlsi 群组.
%chgrp -R image dir1
将目录dir1,及其下所有文档和子目录,改为 image 群组.
4.touch 改变文档或目录之最後修改时间
命令格式:touch name ( name 可为文档或目录名称.)
5.who 查看系统注册用户
6.id 查看当前用户用户号和组号
7.passwd 修改用户口令
命令格式:passwd username
无用户参数修改本用户口令,用户口令必须至少6个字符长,最大8个字符,口令中
至少两个字母字符及一个数字字符
8.su 转换用户
命令格式: su [-] username
无用户参数为转换到超级用户
- :执行新用户环境设置
su –c root dbshut
(三)shell特点
1. s olaris三类shell
- Bourne(缺省shell)
- C
- Korn
Shell 基本特点
特点 Bourne C Korn
别名机制 No Yes Yes
增强的cd(CDPATH)功能 Yes Yes Yes
历史列表 No Yes Yes
作业控制 No Yes Yes
防止文件被覆盖 No Yes Yes
忽略Control_D No Yes Yes
2. B shell
(1) 变量设置
实例: 终端类型:TERM=vt100;export TERM
语言环境:LANG=C;export LANG
执行路径:PATH=$PATH:/usr/bin:. ; export PATH
显示终端:DISPLAY=host:0.0;export DISPLAY
(2) 环境文件
.profile
3. C shell
(1) 变量设置
set 定义变量
setenv 定义环境变量(环境变量与变量不同之处在于环境变量可以影响子进程)
例子: 终端类型:setenv TERM=vt100
提示符: set prompt=”I love unix>;”
路径变量:set path=($path /usr/bin .)
显示终端:setenv DISPLAY host:0.0
共享库: setenv LD_LIBRARAY_PATH /usr/dt/lib:/usr/openwin/lib
(2) 环境文件
.login .cshrc
(3) 脚本语言
事例1: 更换后缀
foreach file (*.ab)
set base=`basename $file .ab`
mv $file $base.cd
end
事例2:简单循环
@ cnt = 1
echo I will count from 1 to 100
echo and pause at every ten numbers for confiumation to continue
echo -n Press an key to start: #显示数据后不回车
set key = $< #接受输入字符
while ($cnt < 101)
echo This is $cnt
if (`exp $cnt % 10` == 0 ) then
echo –n “continue or not(Y/N)”
set key = $<
if ($key == ‘n’) exit
endif
@ cnt += 1 # 变量cnt 加 1
end
echo DONE
4. dtterm
.dtprofile 通用桌面环境设置选项
(四) 创建,删除用户帐户
1. 图形化管理工具
admintool
2. 字符型用户管理
useradd ,usermod
[ 本帖最后由 sun029 于 2008-2-17 18:24 编辑 ]
gongerlin (2007-9-30 14:22:33)
sun029 (2007-10-04 11:19:45)
(2007-10-04 11:21:52, Size: 38.9 KB, Downloads: 1513)
[ 本帖最后由 sun029 于 2007-10-4 11:21 编辑 ]
sun029 (2007-10-04 18:17:26)
1.获取Solaris 10 X86安装光盘(DVD)
http://gceclub.sun.com.cn/event/get_solaris.html
2.Solaris 10 安装指南
http://gceclub.sun.com.cn/downlo ... llGuide_Solaris.pdf
3.安装过程中相关问题的解决
http://docs.sun.com/db/doc/816-6196...=solaris&a=view
http://www.faqs.org/faqs/comp-sys-sun-faq/
4.Multi-booting Solaris and other operating systems
分区不懂的看这里就可以了
http://multiboot.solaris-x86.org/
http://www.kegel.com/linux/solaris.html
多系统安装问题
http://www.lrz-muenchen.de/~bernhard/grub-solaris.html
http://www.sun.drydog.com/faq/9.html
5.solaris官方文档
http://docs.sun.com/app/docs/prod/solaris.10?l=zh#hic
这是至宝哦
6.深入官方站点,有很多书下载的
http://docs.sun.com/?l=zh&q=solaris
7.solaris硬件兼容列表,里面远不止这个
http://www.sun.com/bigadmin/hcl/
8.Solaris Downloads
http://developers.sun.com/prodtech/...oads/index.html
9.gcc,nmap,firebird,openoffice for solaris的软件的下载
http://www.sunfreeware.com/
http://wwws.sun.com/software/solaris/
http://www.ibiblio.org/pub/solaris/i86pc/
10.solaris公用桌面环境:用户指南
http://docs.sun.com/db/doc/816-3944/6ma6k8b00?l=zh
gn2.0桌面环境
http://docs-pdf.sun.com/817-1283/817-1283.pdf
11.这是solaris下的vnc
http://www.xmanager.com/
12.各OS的命令比较
http://bhami.com/rosetta.html
13.Solaris 10 - Whitepapers
http://www.sun.com/software/solaris/whitepapers.xml
14.Solaris故障排错
http://www.princeton.edu/~unix/Solaris/troubleshoot/
Solaris Security Guide
http://sabernet.home.comcast.net/papers/Solaris.html
15.Solaris x86 hints page
http://www.bolthole.com/solaris/x86.html
sun029 (2007-10-04 18:18:45)
提起Solaris,在人们印象中可能是这样一个场景:在拥挤阴暗的机房里,一个笨重的Sun SPARC服务器的屏幕上滚动着神秘的字符。除了专门的服务器管理人员,没有人知道它在做什么。对于大多数读者来说,Solaris有一副让人难以接近的冰冷的面孔。而且,在这冰冷的面孔背后,还有不菲的价格。所有这些,都让人不敢接近它,于是,Solaris成了深闺中的宠儿,神秘而娇嫩。然而,随着Solaris 10的发布,“深闺中的宠儿”向大众走来,渴望技术人员能了解它、掌握它、使用它。
那么,Solaris到底是什么呢?简单地说,Solaris是一种操作系统。通过计算机操作系统可以控制计算机,可以听音乐、玩游戏、上网聊天和看新闻,还可以在操作系统上开发游戏软件,搭建网站,为大家提供新闻服务。在这个领域中,有读者熟悉的微软公司的Windows操作系统,还有被众多自由软件爱好者喜爱的Linux操作系统。而刚刚发布的Solaris 10到底能给我们带来些什么呢?
首先,Solaris 10已经改变了冰冷的面孔,换了一副招人喜爱的样子。
Solaris 10的桌面已经窗口化和菜单化。新的Java控制台界面使人感觉更加亲近和舒适。在这里,用户可以通过单击图标来上网浏览和发送邮件,也可以打开StarSuite7写文档和其他应用程序。这一切和微软的Windows非常相似。
有些读者可能知道,以前的Solaris只能安装在Sun公司的SPARC平台的计算机上,是无法安装在普通用户家中的计算机的。但是,现在的Solaris 10拥有了专门针对普通用户计算机的x86版,它支持目前的大多数台式计算机,而且其安装界面可以选择中文,一般用户也可以轻松安装。
其次,在应用软件方面,Solaris 10不再是仅仅能运行服务器端的软件,还有大量的客户端的软件可以供桌面用户选择安装。用户可以方便地使用系统自带的浏览器软件进行上网、发送邮件和文字处理。而最令用户欣慰的是,他们不必再担心病毒的侵入。因为任何针对于PC平台的病毒,无论在物理上还是在逻辑上,对于Solaris 10都是无效的。
应用在Solaris 10平台上的服务器软件更是丰富。目前有600多家独立软件开发商(ISV)已经提供了1000多种在该系统上运行的数据库、安全产品和Web服务等应用程序。
最近,Solaris 10还具有了一项新的功能,能将针对于Linux环境开发的应用程序的二进制代码,在不经修改和编译的情况下,直接在x86版的Solaris 10环境下执行。Linux被自由软件开发者所喜爱,这使得Linux开发平台上的众多自由软件产品可以被Solaris 10用户所使用,也丰富了Solaris 10平台上应用软件的数量。
对于其他Linux的爱好者来说,可以尝试使用Solaris 10。有些软件不但可以跨平台通用,更令人满意的是,Solaris 10也即将是开源的。Sun公司承诺,将逐步全面开放Solaris 10操作系统,包括Solaris 10内核技术、文件系统及网络管理技术等。
sun029 (2007-10-04 18:22:26)
BootPROM相当于PC的CMOS,可以在BootRPOM下检测硬件和设置启动选项。
Sun系统包含下列两样基本硬件:
BootPROM芯片
非易失性存储器(NVRAM):保存主机的ID号和启动选项设置
BootPROM基本命令
banner
ok banner
Sun UltraSPARC 60 UPA/PCI (2 X UltraSPARC-II 296MHz), Keyboard Present
OpenBoot 3.11, 256 MB memory installed, Serial #3159808.
Ethernet address 8:0:22:1a:e7:3f, Host ID: 72303700.
ok
banner命令显示系统的基本配置信息,包括机器型号、CPU数量和主频、内存大小、以太网地址、主机序列号等。
boot 命令及参数
ok boot [device_name] - [options]
选项包括:
a 交互式启动操作系统
r 重新配置操作系统硬件信息
s 操作系统进入调试状态(单用户模式)
v 显示启动信息的详细情况
ok boot disk2 -r
printenv命令
printenv命令显示NVRAM变量的设置和缺省值。
ok printenv
Parameter Name Value Default Value
tpe-link-test? true true
output-device ttya screen
input-device ttya keyboard
sbus-probe-list f0123 f0123
keyboard-click? false false
diag-file
diag-device net net
boot-file
boot-device disk2 disk
auto-boot? true true
More [,,q] ? q
ok
setenv命令
setenv设置PROM的参数值,常用的参数有:
参数 值 意义
auto-boot? true 下次自动启动操作系统
false 下次启动停在OK状态
boot-device cdrom 从光驱启动操作系统
disk2 从第二个硬盘启动操作系统
注:由于Ultra 5没有内置SCSI口,只能加块带SCSI口的网卡。此时设置启动盘应该是:
ok setenv boot-device /pci@1f,0/pci@1/pci@1/SUNW,isptwo@4/sd@2,0:a
Ultra 60外置硬盘的启动应为:
ok setenv boot-device /pci@1f,4000/SCSI@3,1/disk@2,0:a
set-defaults
将NVRAM的所有参数复原为默认值
机器启动时的键盘输入
stop
如果在系统加电自检时按下Stop键,就取消POST(加电自检)诊断,然后停留在OK状态。
Stop+d
在系统自检时同时按下stop和d键,系统将自动转到诊断模式,诊断模式下系统将更完全地进行自检。
Stop+n
如果由于NVRAM的设置不正确而导致系统无法正确启动时,可以在系统加电自检时同时按下stop和n键。它的作用是将NVRAM的参数值设为默认值。
Stop+a
同时按下stop和a键将中断操作系统的运行,退到OK状态。
警告:尽量不要在操作系统运行时按stop+a,这将导致操作系统停止并且导致数据的丢失。在万不得以的时候,在按下stop+a后,键入sync命令用以将内存的数据同步到硬盘中。
查找系统设备
probe-scsi-all
ok probe-scsi-all
Target 3
Unit 0 Disk SEAGATE ST1480 SUN0424626600190016
Copyright (c)
All Rights Reserved
Target 6
Unit 0 Removable Read Only device SONY CD-ROM
这个命令查找系统的所有SCSI设备。 注:如果从操作系统中退出后再运行此命令可能会造成系统的死机。请先设置auto-boot?为false后再运行reset-all,系统将重新自检,停留在OK状态下,然后可以运行这个命令。
probe-ide
查找系统的所有IDE设备。
ok probe-ide
Device 0 ( Primary Master )
ATA Model : ST 34342A
Device 1 ( Primary Slave )
Not Present
Device 2 ( Secondary Master )
removable ATAPI Model : CDR-8240B
Device 3 ( Secondary Slave )
Removable ATAPI Model yyyyyyyyyyyyyyy
注:如果从操作系统中退出后再运行此命令可能会造成系统的死机。请现设置auto-boot?为false后再运行reset-all,系统将重新自检,停留在OK状态下,然后可以运行这个命令。
设备检测
eject
将软盘放入软驱,然后在输入eject,软盘将自动弹出。
watch-net-all
测试所有网卡和网络状态。每个网卡测试分两部分:loop-back测试和网络线路测试。如果loop-back(网卡自环)通过,说明网卡状态良好。如果网络线路测试没通过,说明网线没接收到信号,可能是网线没接好或是网线不好
sun029 (2007-10-04 18:41:42)
本文主要針對如何在 x86 系統上安裝 Solaris 10 OS 1/06。內容是參考SUN 網站(http://www.sun.com/software/solaris/howtoguides/installationhowto.jsp) 的 How to Quickly Install the Solaris 10 英文版本來編寫,但本文並不是安照原文翻譯,圖片方面也並不是原文的圖片,而且文中會加多或減少原文的內容。
本文的內容只介紹安裝 Solaris 10OS 1/06 的方法, 但這樣是並不足夠,還需要說明如何設定。但 Solaris 10 版本的設定和 Solaris 9 的設定鐘分別很大,所以遲一點會有另一編說明 Solaris 10 的設定方法。相關網站及軟件:
SUN Microsystems - Solaris 10 OS 1/06
SUN 主頁:http://www.sun.com
SUN 的英文討論區:http://forum.sun.com
如何快速安裝 Solaris 10 1/06 OS: http://www.sun.com/software/solaris/howtoguides/installationhowto.jsp
Solaris 10 的下載網站: http://www.sun.com/software/solaris/get.jsp
Solaris OS 硬件相容清單: http://www.sun.com/bigadmin/hcl/安裝時首先要考慮的問題:
採用 x64 或 x86 的電腦系統
電腦系統是不是相容 Solaris 10 OS 的 Solaris 10 硬件相容清單 (HCL)
電腦系統的彩色顯示卡是否相容
就算不需要使用網絡卡,安裝時還是要一步一步地對網絡功能進行設定。包括 IP 位置等。所以,在安裝時,將會假設你已經有設定網絡的基本資料。如果你在安裝的過程中發現其它問題,而且本文也不能幫助你解決的話,你可以參考 Solaris 10 OS Installation Guide : Basic Installations 來得到多一點資料。
檢查硬件相容性清單:
首先,你需要核對清楚,你所使用的電腦系統的硬件是需要那一個版本的運作系統。硬件相容性清單網頁: http://www.sun.com/bigadmin/hcl/。
注意:這裡的 x86 意思是指 32-bit x86 相容的架構的CPU家族、64-bit AMD64 和 Intel EM64T。 然而,這裡的 x64 意思是指那個系統是採 用 64-bit x86 CPU。 Solaris 10 OS 能夠在很多不同的 x86 和 x64 系統上運行。
系統基本要求:
電腦系統的硬件,需要附合以下最低的要求。但在安裝 Solaris OS 時,還是不建議你使用太小的硬碟機和太慢的CPU來安裝。
最小 256MB RAM
最小 5GB 硬碟機空間
最小 400MH CPU 速度
DVD 或 CD ROM 碟機
VGA 顯示器
若要知道多一點有關 Solaris 系統要求,可以到 http://www.sun.com/solaris/specs.jsp 。
能夠在 Solaris 10 上運行的第三方軟件清單,可以到 http://www.sun.com/partners/10moves/solutions.html 。
如何可以獲得 Solaris x64 或 x86 平台的安裝程式:
Solaris 10 OS 1/06 發行版本,已經可以在 SUN 的網站下載
去 http://www.sun.com/solaris/ 獲得有關 Solaris 10 OS 的資料。
去 http://www.sun.com/solaris/get.jsp 開始進行下載 。
下載 Solaris 10 清單中的檔案。
點選合適的媒體格式 (e.g. Solaris for x64/x86 systems,CD/DVD) 。
如果你還未在 Sun 下載中心登記,馬上登記 (Register Now)。
解答一些簡短問題。
閱讀和接受許可協議。
把下載回來的檔案燒成 CD 或 DVD。
注意:在下載時很可能會很慢,而且也很可能在下載期間中途停止下載。Sun 會建議你使用 Sun Download Manager 下載會好點。但我覺得用 FlashGET 來下載會比較有效率和快很多。
其實購買一套 Solaris 10 並不貴, 基本版本 3DVD's 為 US$15,企業版本 8 DVD's 為 US$30。這樣會比下載來得輕鬆點。
把下面的檔案下載後,還有其它工作。首先把 sol-10-u1-ga-x86-dvd-iso-(a、b、c、d、e).zip 這五個檔案解壓,然後順序改名改成 file1、file2、file3、file4、file5。
Solaris 10 - x86 Platform - Solaris 10 1/06 Operating System
Solaris 10 1/06 x64/x86 DVD segment 1, Multi-language
sol-10-u1-ga-x86-dvd-iso-a.zip
478.54 MB
Solaris 10 1/06 x64/x86 DVD segment 2, Multi-language
sol-10-u1-ga-x86-dvd-iso-b.zip
478.46 MB
Solaris 10 1/06 x64/x86 DVD segment 3, Multi-language
sol-10-u1-ga-x86-dvd-iso-c.zip
478.33 MB
Solaris 10 1/06 x64/x86 DVD segment 4, Multi-language
sol-10-u1-ga-x86-dvd-iso-d.zip
478.46 MB
Solaris 10 1/06 x64/x86 DVD segment 5, Multi-language
sol-10-u1-ga-x86-dvd-iso-e.zip
476.89 MB
再把五個檔案變成為一個 iso 檔,這 iso 檔是用來燒 CD 或 DVD 用。致於如何燒碟,在這裡不打算多說。
如何把五個檔案變成為一個 iso 檔?
在 Microsoft Windows Command 模式下則行:
copy /b file1 + file2 + file3 + file4 + file5 file.iso
或在系統下則行:
cat file1 file2 file3 file4 file5 > file.iso
安裝 Solaris 10 1/06 運作系統:
1. 把第一張 CD 或 DVD 放入碟機內
2. 開啟電腦
3. Boot CD 或 DVD ROM來開始安裝,並且會顯示已下的語句。
Loading stage 2....
GNU GRUB version 0.95 ( xxK lower / xxK upper memory)
4. Solaris 10 1/06 OS 的安裝與起動功能是由 GNU GRUB loader 來處理。所以,會出現 GRUB loader 這個訊息。所以,已前的 Solaris 安裝版本和現在的情況是不一樣的。
5. 下一步是要決定使用那一種 Console 類型,基本上預設第一個就是對的。另外兩個 Serial Console 你可以用箭頭鍵來選擇你需要的 Console 類型。基本上, 這兩個 Serial Console 是用來給一些不是使用 VGA 顯示器來顯示的 headless rack-mounted 系統用,所以,這類型的系統是需要接上 Serial Console 或 Serial 終端機來操作。在 60 秒之內,如果你沒按 ENTER 鍵來確定選擇,系統會自動 Boot Solaris OS。
6. 按完 ENTER 鍵後,便會出現已下的訊息。
7. 當第一個 modules 讀完後,便會出現六個安裝選項。 你可以用箭頭鍵來選擇你需要的方法或樣計時功能到達30秒。超過30秒後,便會進入自動安裝功能。
提外話:
如果出現以下訊息:
asy1: UART @ 2f8 scratch register: expected 0x5a, got 0xff
Cannot identify UART chip at 2f8
asy0: 是RS232 Com1
asy1: 是RS232 Com2
這段訊息是說明找不到 Com2 這個 RS232 端口。那也沒什麼大不了,因為我的情況確實是沒有 Com2。
8. 當你選擇了 1. Solaris Interactive 的預設選項或等到超過了30秒,便會出現以下的訊息。
請特別注意和記住下面硬件資料中的 "pcn0",這個是網絡卡的硬件名稱。不同的網絡卡會有不同的名稱,例如:3Com 一般都會用elxl0等。 往後,我們還會有機會用到這個名稱。
9. 當安裝程式檢查完畢硬件之後便會出現下面的訊息。這時,你只要按 ENTER 或 等30秒,便會進入系統的圖形模式。如果,你覺得下面的硬件不正確,又或想更改和加入驅動程式。你可以按下 ESC 鍵來改變硬件的設定。
如要了解更多的設定硬件的方法,可以參考 Solaris Install Guide available。網址:http://docs.sun.com
10. 注意:在圖形模式中是需要使用鼠標來操作系統。
選擇你想使用的系統語言:
0. 英文
1. 法文
2. 德文
3. 意大利文
4. 日文
5. 韓文
6. 簡體中文
7. 西班牙文
8. 瑞典文
9. 繁體中文
跟著的安裝過程,將會使用英文來安裝。
選擇 0 然後按 ENTER。
11. 有右下角會出現一個 Install Console 視窗畫面。
12. 另一個 Welcome 視窗畫面也出現了。 按 Next > 下一步。
13. 出現了 Network Connectivity 視窗後,請選 Networked,然後按 Next > 下一步。
若果你是單機使用,而且不需要使用網絡功能,請選 Non-networked,然後按 Next > 下一步。( 請應該直接跳去看第15項 Date and Time 設定 )
14. 出現了 DHCP Server 設定視窗,並選擇 No,然後按 Next > 下一步。這種方式將會要自行設定 IP Address、Subnet Mask 和 Gateway 等資料。
如果你打算透過 DHCP Server 獲網絡設定資料 ( 包括:IP Address、Subnet Mask、Gateway 和 DNS Server IP 等 ),請選擇 Yes,然後按 Next > 下一步。
注意:這個 "pcn0"是網絡卡的硬件名稱。不同的網絡卡會有不同的名稱,例如:3Com 一般都會用elxl0等。 往後,我們還會有機會用到這個名稱。
15. 輸入 Host Name 主機名稱,然後按 Next > 。
這裡的例子,Host Name 使用了 hkoffice,你也可以自行決定你的 Host Name 的名稱。
16. 輸入你打算選用的 IP 地址,然後按 Next > 。這個例子使用了 192.168.20.229。
17. 輸入Netmask,然後按 Next > 。這個例子使用了 255.255.255.0。
18. 取消 IPV6 網絡功能,選取 No ,然後按 Next > 。
19. . 出現了Default Route 設定視窗。
Detect one ( 由系統自行尋找 Router/Gateway IP)
Specify one ( 由使用者自行決定 Router/Gateway IP )
None ( 不設定任何 Router/Gateway IP )
這裡的例子是選取 Specity one,然後按 Next > 。
20. 輸入 Router 或 Gateway IP Address, 然後按 Next >。 這裡的例子使用了 192.168.20.1。
21. Kerberos 是網絡認證協定。在電腦與電之間的資料交換時的加密認證用。
這裡不應該使用 Kerberos ,所以選擇 No,然後按 Next >。
22. 建議不要在這裡設定 Name Service,因為可能會做成奇怪的問題。所以在這裡設定為 None,然後按 Next >。
你一定會很擔心,如果在這裡不設定好 DNS 的話,有可能會不能上網。 那是對的,但也不建議你在這裡設定。
Solaris 10 安裝完成後,只要按照 http://solaris.tophk.net/tcpip/index.htm 的方法,便可以設定 DNS Server 的 IP Address 和啟動 DNS Client Name Service。
日後,會在 我的Solaris 10設定,祥細說明。
23. 設定系統時區 ( Time Zone) ,這裡的例子會使用地理區域名稱 (Geographic Region)。按 Next > 。
24. 選擇地區、國家、城市。按 Next >。
25. 設定日期和時間。系統會自動顯示日期和時間,如果正確的話,按 Next >。如果需要更改,在下面的文字欄中修改就可以,然後按 Next >。
26. 設定 root 密碼,注意:在輸入密碼時,密碼碰不會顯示出來。並且,需要輸入兩次密碼來確保密碼正確。
p.s. root 是系統中最高權限的使用者。所以密碼盡可能不要太簡單,標淮的密碼最小要有8個字,密碼中最好包含數字和英文字,而英文字最好同時有大寫和小寫字母。設密用字典中能找到的字。身份證號碼、信用卡密碼、出生日期和電話號碼等,一定不能使用。最後一句,不要小看黑客 ( Hacker )。
27. 最後,確定資訊 ( Confirm Information ) 會出現你所選擇的總結,你要確定清楚總結的內容是否正確,如果是正確的話按 Confirm > ,如果不正確的話按
採用手動設定網絡資料和透過DHCP設定,所顯示下面的網絡資訊是會不相同的。
29. 當你看到可下的 Solaris Logo 時,只要按 Next >,系統便會開始安裝。
30. 設定安裝選項:
Reboot automatically after software installtion? 選擇 Yes
當軟件安裝完成後是否自動從起系統。
Eject additional CDs/DVDs automatically after software installation? 選擇 Yes
當軟件安裝完成後是否把 CD 或 DVD 退出。
按 Next > 。
31. 按 ok 。 Notice 說,當系統從起後,請把 CD 或 DVD 拿走,不要留在電腦上,已免阻礙系統啟動。
32. 選擇那一個媒體進行安裝。這裡用 CD/DVD 來進行安裝,然後按 Next > 。
33. 系統開始進行安裝時,需要幾秒鐘時間來處理。
34. 點選 Accept 來接受 Solaris 的 License Agreement,然後按 Next >。
35. 如果你覺得預設安裝可以的話,選 Default Install ,然後按 Next > 。 跳去看第45項,否則繼續看第36項。
如果你想自行決定安裝什麼和定義 Harddisk 的Partition,你可以選擇 Custim Install,然後按 Next >。這裡的例子使用 Customer Install。
36. 選擇軟件使用語言。如果不選的話,系統預設為英文。然後按 Next >。 使用英文會比較保險一點,所以這裡的例子什麼都沒選,直接按 Next >。
37. 因為之前沒有點選其它語言,所以這裡只出現英文的選項。點選了 English ( POSIX C ) ( C ) ,然後按 Next >。
38. 選擇你需要的軟件。這裡是全選。然後按 Next >。
39. 選擇那些附加的軟所使用的安裝媒體。因為,本例子是採用了 DVD 來安裝,所以只有選 None。然後按 Next >。
40. 軟件群組 ( Software Group ) 決定於你想系統用來做什麼。這裡的例子是 Entire Group 和 Default Packages,然後按 Next >。
需然,使用 Entire Group 看起來會安裝了一些沒用的東西,但如果你不使用這個群組,你將來可能會出現很多問題和無病。
例如:經常在安裝其它軟件時,會出現這個東西沒有,那個東西沒有,然後,很辛苦地從 CD/DVD 裡把安裝軟件找出來安裝。
最多,就是在安裝完成後把沒用的軟件關掉。 這是筆者的經驗。
41. 選擇啟動碟。若果你不只有一個硬碟機,你可以從左邊點選一個作為啟動碟。然後按 Next > 。
備注:如果你不知到什麼是 c0d0,請參考 http://solaris.tophk.net/hdidelist/index.htm IDE 和 SCSI 分配名稱。
42. 如果你需要自行設定或更改 c0d0 這個 Harddisk 的 Partition,你便需要點選 c0d0,然後按 Next > 。 之後,你便可以建立、刪除和自行決定 Partition 的大小。每一個磁碟一定要選擇為 Solaris 的 Partition 格式。並且,每一個 Solaris 系統,只可以有一個 X86Boot partition。
建議你不要點選 c0d0 ,而直接按 Next > 。因為後面還有機會可以選擇更改 Partition。
43. 你可以看到下面的 Paration 分格方式,如果你不滿意這種分格方式的話可以按 Modify 來更改設定。你也可以考慮把 /export/home 刪除掉,而直接加大 / (root) Partition,這種做法對系統不會做成什麼影響。
swap 的大小,建議是 RAM 的兩倍,但盡可能不要大過 2GB。
所有都決定好後,按 Next >。 跳去看第45項。
44. 如果你在第43項時按了 Modify,就會出現以下的版面。Solaris 系統,必須要有 / 和 swap 這兩個 Partition。 /export/home 沒有了,問題一點都不大。
盡可能把 / 的空間調到最大。swap的空間是 RAM 的兩倍,盡可能不要超過2GB。
備注: / 是根目錄。 swap 是系統的虛擬記憶體,當主記憶體不夠用時,就回使用這個記憶體來運行,但如果設得太大的話,運作起來會非常慢。所以,如果記憶體不夠的話,還是加 RAM 會好一點。
45. 檢查清楚清單內的內容正確之後,便可以按 Install Now > 開始安裝。
46. 系統安裝程序已經開始了。等幾分鐘之後,就會到達 100%。
47. 按 Continue 繼續安裝。
48. 按 Continue 繼續安裝。
49. 安裝完成。在90秒之後將會自動從起系統,如果按 Pause 可以暫停從起。如果按 Continue 就馬上從起系統。
50. 從起時,CD / DVD 機會自動打開,請把 CD / DVD 拿走。並且確定系統是使用硬碟從新起動 。
51. 啟動後,GNU GRUB 畫面就會出現。選擇 Solaris 10 1/06 ,然後按 enter。
52. 選擇 no,然後 enter。
53. 開始安裝 Solaris 10 Documentation,如果是下載版的 Solaris 10,你應該是沒有 Documentation CD/DVD 的,這樣的話,請您按 Skip 。
如果你有 Documentation CD/DVD ,請點選 CD / DVD,然後按 Next > 。
這個例子是按 Skip。
54. 按 Skip Installation。
55. 開始安裝 Java Enterprise System,如果是下載版的 Solaris 10,你應該是沒有 Java Enterprise System CD/DVD 的,這樣的話,請您按 Skip 。
如果你有 Java Enterprise System CD/DVD ,請點選 CD / DVD,然後按 Next > 。
這個例子是按 Skip。
56. 按 Skip Installation。
57. 開始安裝 Solaris Software Companion,如果是下載版的 Solaris 10,你應該是有 Solaris Software Companion CD/DVD 的,請您按 Next > 。
58. 放入 Solaris Software Companion CD/DVD,然後按 ok >。
59. 以下會顯示將會安裝的軟件資料,然後按 Install Now > 。
60. 安裝到達 100% 後,系統便會自動從啟。
70. 安裝完成,系統自動從啟。
第一次啟動 Solaris 10 Java windows System
1. 按 Enter 啟動 Solaris 10。
2. 進入 Login 畫面後,按 Option > Session > Java Desktop System, Release 3
3. 輸入使用者名稱,這裡的例子是 root 。
4. 輸入密碼。
5. 進入Windows Desktop 後,你會發現畫面的Resolution很小。所以,我們需要把 Resolution 設定高一點。
6. 在啟動 Windows Desktop 時,會出現 Loading System Information 的訊息,而且還會啟動 Registration 畫面。我們現在暫時不用理會它,也不用把它關閉。
7. 開始設定 Resolutuion ,按 Launch > Log Out root 。
8. 選 Log out ,按 OK 。
9. 按 Option > Command Line Login 。
按一下 Enter。
10. 輸入 root 的密碼。
11. 輸入以下指令。
# cd /usr/X/bin
# kdmconfig
12. 選擇 Xsun Server,然後按 F2 。
13. 選擇 Change Video Device/Monitor ( 更改影象設備/顯示器 )。
14. 選擇你的顯示名稱,如果沒有的話,代表你沒有安裝正確的顯示卡驅動程式。這裡的例子是用VMWARE來進行安裝,所以選擇 XF86-VMWARE VMWare Inc vmware0405來進行安裝。
15. 我打算使用 1280 x 1200 Non-Interlaced (非交錯式) ,但這裡沒有,所以我選了 1600x1200 交錯式 64kHz 多頻顯示器。
16. 我選了 17" 顯示器。
17. 這裡選擇 1280 x 1024 - 16.8M Color 的 Resolution ( 解象度 )。
18. 一切設備選擇正確後,選 No change needed - Test/Save and Exit ,然後按 F2。
19. 按 F2 ,如果正常的話,會出現一個 16 色的畫面,然後用鼠標選擇 Yes 。
20. 輸入 reboot ,把電腦從新啟動。
21. 從新啟動後,在以下畫面按 Enter 啟動 Solaris 10。
22. 這裡不用輸入 Login Name,否則,便會啟動Console 文字模式。
23. 輸入使用者名稱,root ,然後按 OK。
24. 輸入密碼,然後按 OK。
25. 現在可以看到一個 1280 x 1024 的畫面。Registration 還是不用管它,也不用關閉。因為,我們在安裝時還沒有把 DNS 的 Server IP 設定好。
26. 現在開始設定 DNS 。 按 Launch > Applications > Accessories > Text Edior 。
27. 因為,我選擇了 202.134.105.135 那台 DNS Server,所以打入 nameserver 202.134.105.135 。
你也可以自行決定用那一台 DNS Server。
28. 按 File > Save As 來存檔。
29. 檔案名稱為 resolv.conf,存檔目錄是 /etc,文字編碼是 ASCII,然後按 Save 存檔。
30. 只把 DNS Server IP 設定好,還不能使用。要做以下的步驟,按 Launch > Applications > Utility > Terminal 。
31. 輸入以下指令。
# bash
# cd /etc
# cp nsswitch.conf nsswitch.conf.orig
# cp nsswitch.dns nsswitch.conf
# exit
# exit
Sun 網上更新和 Registration
1. 在進行 Registration 前,先用 Web Browser,看一看能不能看到其它網站。如果不能的話,首先要把網絡功能問題解決好和檢查清楚 IP Address、Subnet Mask、Gateway和之前設定的 DNS設定是否正確,才進行 Registration。
Registration 是有需要做的,因為如你不進行 Registration,你便不能進行 Sun Online Update。基本的 Sun Online Update 是不用錢的,不用擔心。
選擇 Register the Solaris software and receive software updates,然後按 Next 。
2. 如果你在 Sun Online Support 沒有帳戶的話,請點選 Create a Sun Online Account 申請一過,也是不用錢的。
輸入帳戶的使用者名稱和密碼,然後按 Next 。
3. 不選擇 Enter Sun Subscription Key,因為,這個是需要錢買的,當然你也可以購買一個。如果選擇 Continue without a Subscription Key,你還可以獲得有限度的 Sun Update 功能。你還可以遲一點才給它 Sun Subscription Key。 點選 I have read the agreement and I accept,然後按 Next 。
4. 點選 Send this information to Sun ,然後按 Finish。
5. Registration 確認完成,然後按 Close 。
6. 在屏幕的右下角,你按一下
這個符號來進行 Sun Update 系統更新。
7. 等一會,系統正在檢查有什麼可以更新。
8. 出現了可更新的清單,這個例子把所有都選了。然後按 Install XX Item Now。
9. 系統進行分析。
10. 安裝完成後便出現以下的畫面。點選 Restart system now (現在從新啟動系統) ,然後按 OK。
11. 是否從新啟動系統,按 Yes 。
12. Solaris 系統的基本安裝已經完成了。如果覺得本文章有問題的話,歡迎到 http://solaris.tophk.net/forum/[url=http://forum.tophk.net/][/url] 的 Solaris 討論發表意見。
本文章只針對安裝 Solaris 10,並不包括其它方面的深層設定。希望可以盡快寫一編 我的
zhfxy (2007-10-06 23:35:12)
sun029 (2007-10-07 13:05:50)
sun029 (2007-10-08 11:11:57)
1、查看机型:SUn的小型机的机型都在面板上写着有,如NETRA T 1125,
还有比如utra 5,utra 10等等。
2、查看cpu个数 (错误,不正确,因为sun中的top命令不能完全看到所有的cpu情况,与HP用法也不一样)
#top
CPU states: 99.3% idle, 0.1% user, 0.6% kernel, 0.0% iowait, 0.0% swap
表示只有一个cpu
正确方法:
用dmesg |grep cpu
便可以看到正确的 cpu个数了。
3、查看内存
#dmesg |grep mem
mem = 2097152K (0x80000000)
avail mem = 2087739392
4、查看磁盘的个数
#vxdisk list
DEVICE TYPE DISK GROUP STATUS
c0t0d0s2 sliced - - error
c0t0d0s7 simple c0t0d0s7 rootdg online
c1t0d0s2 sliced - - online
c1t1d0s2 sliced smpdg2 smpdg online
c1t2d0s2 sliced smpdbdg1 smpdbdg online
c2t0d0s2 sliced - - online
c2t1d0s2 sliced smpdg1 smpdg online
c2t2d0s2 sliced smpdbdg2 smpdbdg online
5、如何查看文件系统
#df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s0 4032142 1050675 2941146 27% /
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t0d0s6 7304977 29 7231899 1% /home
/dev/dsk/c0t0d0s5 4032142 402929 3588892 11% /opt
swap 3418392 32 3418360 1% /tmp
/vol/dev/dsk/c0t6d0/informix
201730 201730 0 100% /cdrom/informix
/dev/vx/dsk/smpdg/smpdg-stat
1055 9 941 1% /smpwork
/dev/vx/dsk/smpdg/lv_smp
17336570 128079 17035126 1% /sms
6、查看卷组、逻辑卷的位置
#cd /dev/vx/dsk/
比如smpdg等等都在该目录下了,然后再进入某个卷组目录就可以看到该卷组下
面的逻辑卷了。
7、如何创建卷组、逻辑卷、文件系统
A、创建smpdg逻辑卷组(假设现在是将c1t1d0 和c1t2d0两块物理磁盘来创建smcpdg逻辑卷组)
vxdisksetup -i c1t1d0 (格式化物理磁盘)
vxdisksetup -i c2t1d0
vxdg init smpdg smpdg1=c2t1d0 (将物理磁盘加入到逻辑卷组smpdg)
vxdg -g smpdg adddisk smpdg2=c1t1d0
然后再来创建逻辑卷、文件系统
vxassist -g smpdg -U fsgen make lv_smp 17200m layout=nolog smpdg1
vxassist -g smpdg mirror lv_smp layout=nostripe smpdg2
newfs -C -f /dev/vx/rdsk/smpdg/lv_smp
假设现在的一台机器上挂接到/sms
mkdir /sms
chown smp:smp /sms
vxvol -g smpdg startall
mount /dev/vx/dsk/smpdg/lv_smp /sms
umount /sms
vxvol -g smpdg stopall
vxdg deport smpdg
然后再在第二台机器上挂接到/sms
mkdir /sms
chown smp:smp /sms
vxdg import smpdg
vxvol -g smpdg startall
newfs -C -f /dev/vx/rdsk/smpdg/lv_smp
mount /dev/vx/dsk/smpdg/lv_smp /sms
umount /sms
备注:以上是创建一个共享的文件系统
往往由于smpdg要分配给某一个应用来使用,所以需要再来创建一个个逻辑机运行
时挂接的文件系统:
vxassist -g smpdg -U fsgen make smpdg-stat 2m layout=nolog smpdg1
vxassist -g smpdg mirror smpdg-stat layout=nostripe smpdg2
newfs /dev/vx/rdsk/smpdg/smpdg-stat
B、创建smpdbdg逻辑卷组
创建卷组:
vxdisksetup -i c1t2d0
vxdisksetup -i c2t2d0
vxdg init smpdbdg smpdbdg1=c1t2d0
vxdg -g smpdbdg adddisk smpdbdg2=c2t2d0
vxassist -g smpdbdg -U fsgen make smpdbdg-stat 2m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror smpdbdg-stat layout=nostripe smpdbdg2
newfs /dev/vx/rdsk/smpdbdg/smpdbdg-stat
创建逻辑卷:
vxassist -g smpdbdg -U gen make lv_rootdbs 128m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_rootdbs layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_logdbs 300m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_logdbs layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_phydbs 100m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_phydbs layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_tempdbs 1000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_tempdbs layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_svcchunk1 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_svcchunk1 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_svcchunk2 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_svcchunk2 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_svcchunk3 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_svcchunk3 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_recchunk1 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_recchunk1 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_recchunk2 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_recchunk2 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_recchunk3 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_recchunk3 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_recchunk4 2000m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_recchunk4 layout=nostripe smpdbdg2
vxassist -g smpdbdg -U gen make lv_recchunk5 1700m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_recchunk5 layout=nostripe smpdbdg2
C、附逻辑卷的属性
vxedit -g smpdg -v set user=smp group=smp lv_smp
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_rootdbs
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_logdbs
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_phydbs
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_tempdbs
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk1
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk2
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk3
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk1
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk2
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk3
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk4
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk5
备注:在SUN的机器中在给逻辑卷付属性的时候,等于用chown、chmod来作。
8、如何删除卷组
其实也就是去激活和倒出的过程,然后再来对物理磁盘重新格式化就完了。
vxvol -g smpdbdg stopall
vxdg deport smpdbdg
vxdisksetup -i c1t0d0
vxdisksetup -i c2t1d0
......
这样做了之后就不会再有/dev/vx/smpdbdg目录了。
9、如何建立共享卷组
在第一台机器上先建立卷组,假设已经建设好卷组smpdg,现在要在第二台机器上建立共享卷组smpdg,
则先在的一台机器上将smpdg去激活、并且倒出smpdg:
smcp01>vxvol -g smpdg stopall
smcp01>vxdg deport smpdg
再来在第二台机器上激活、导入smpdg:
smcp02>vxdg import smpdg
smcp02>vxvol -g smpdg startall
切换后对用以下三个命令进行查看是否切换成功:
vxdg list //用于查看逻辑卷组的信息
vxdisk list //用于查物理磁盘的信息
vxprint -vt //用于查看所有卷的信息
10、如何查看磁盘的大小
方法一:
#format
然后选择盘的代号,回车进入下一级菜单,再选inquiry,就得到该盘的大小信
息,比如:
Vendor: FUJITSU
Product: MAN3184M SUN18G
Revision: 1502
注意:format是一个功能强大的磁盘诊断工具。
方法二:
#cd /opt/SUNWexplo/bin/
运行explorer得到磁盘的信息包,是一个目录,进入该目录,就发现有一个
disks目录,进入该目录发现有一个diskinfo文件,用如下命令看各个磁盘
的大小:
0: rmt/0ln HP C1537A L706 62########
1: c0t0d0 FUJITSU MAJ3182M SUN18G 0804 0041P90050##
2: c1t0d0 SEAGATE ST318203LSUN18G 034A 0025H54125##
3: c1t1d0 SEAGATE ST318203LSUN18G 034A 0026H70087##
4: c1t2d0 FUJITSU MAJ3182M SUN18G 0804 0046P66422##
5: c2t0d0 SEAGATE ST318203LSUN18G 034A 0026G30220##
6: c2t1d0 SEAGATE ST318203LSUN18G 034A 0026H59041##
7: c2t2d0 FUJITSU MAJ3182M SUN18G 0804 0051P91980##
8: ses0 SYMBIOS D1000 2 O8# SAF-
9: ses1 SYMBIOS D1000 2 O8# SAF-
11、查看informix的版本
#su - informix
informix>onstat -
这样可以看到informix的版本。
12、收集信息的工具
#cd /opt/SUNWexplo/bin/explorer
#explorer
运行之后得到一个文件夹和该文件夹的压缩包*.gz。我们可以进入该
结果文件夹,在该文件夹中有各种需要查看的信息。
13、双机的脚本文件
#cd /opt/SUNWcluster/ha/smpwork
在ha下面有双机应用的文件夹,如smpwork,在该文件夹下面又有各种
双机应用的配置文件。
14、双机的维护命令集
首先在节点smcp01机上启动cluster:
# scadmin startcluster smcp01 smcp
然后在节点smcp02机上将本节点启动:
# scadmin startnode
启动后观察cluster状态的命令是 :
# hastat //该命令可以显示cluster、节点、
逻辑机和Data service的状态,以及一些历史运行信息。
# get_node_status //该命令可以显示所在节点的节点号、公用网卡的状态等信息。
从图形化的本地终端(假设其IP地址为ip)中以smcp用户的身份登
录到SMCP主机(注意应使用SMCP的逻辑机地址)
% telnet smcpwork
在SMCP主机上设置环境变量DISPLAY
% setenv DISPLAY ip:0.0
在本地终端中执行
% xhost +
手工启动OAM
% oam&
以OAM操作员登录
分别在两个节点smcp01机和smcp02机上执行:
# scadmin stopnode
该命令使当前所在节点停止在cluster中运行,而且在两个节点上要分别执行该命令。
例如将smcpwork切换到节点smcp02上运行可以输入:
#scadmin switch smcp smcp02 smcpwork
例如将querywork切换到节点smcp02上运行可以输入:
#haswitch smcp02 querywork
hareg命令通过以下开关参数将Data service注册和激活
-r 将指定的Data service注册到cluster中
-u 将指定的Data service从cluster中取消注册
-y 激活指定的Data service,使其状态为On
-Y 激活cluster中所有的Data service,使其状态为On
-n 去激活指定的Data service,使其状态为Off
-N 去激活cluster中所有的Data service,使其状态为Off
hareg不带任何参数时可以查看所有Data service的当前状态
Data service只有在注册到cluster中之后,才会具有On或者Off的状态,
处于On状态的Data service可以正常的对外提供服务,
而处于Off状态的Data service是停止对外服务的。如果Data service被取消了注册,
必须重新注册才能在cluster中运行起来。当然,使用hareg命令的前提是cluster
已经启动并正常运行。
从图形化的本地终端(假设其IP地址为ip0)中以root用户的身份登录到SMCP主机
(假设其IP地址为ip1):
在本地终端中执行
% xhost +
% telnet ip1
再在SMCP主机上设置环境变量DISPLAY
# DISPLAY =ip1:0.0
# export DISPLAY
# vxva
15、激活/去激活/导出/导入卷组
smcp01>vxvol -g smpdg stopall
smcp01>vxdg deport smpdg
smcp02>vxdg import smpdg
smcp02>vxvol -g smpdg startall
16、SUN Netra T 1125双机配置的详细注解
A、网络资源的配置
SUN Netra T 1125 共有4 个网卡:hme0 ,hme1 ,hme2和hme3 。
hme0和hme1 是SUN 服务器与公网通信的主备用网卡,只需要一个IP 地址;
hme2和hme3 作为双机之间心跳检测用,也需要配置一个IP 地址。
另外,TELLIN SMP 对外使用的是一个浮动的IP 地址,与数据IP 在同一网段,
此地址由SUN 的双机软件SUN Cluster进行管理。
1)如何修改IP地址和主机名
IP地址涉及的文件有:
/etc/hosts (change the IP address)
/etc/netmasks (if subnetting)
/etc/defaultrouter (to specify the new gateway for this subnet)
改变主机名涉及的文件有:
/etc/hosts (change to the new hostname)
/etc/nodename (change to the new hostname)
/etc/hostname. (where is the name of the primary
interface for this system, i.e hostname.hme0 or hostname.le0.
Change to the new hostname.)
/etc/net/ticlts/hosts (change both columns to the new hostname)
/etc/net/ticots/hosts (change both coluums to the new hostname)
/etc/net/ticotsord/hosts (change both columns to the new hostname)
改完上述文件之后推荐重起一下机器。
2)如何配置hme0、hme1两块网卡的主备关系
只要给hme0配置地址就够了。
然后会再后面的双机配置中执行下面的命令建立逻辑机的时候会创建出这种关系来。
#scconf smcp -L smcpwork -n smcp01,smcp02 -g smcpdg -i hme0,hme0,smcpwork -m
3) 配置NAFO (Network Adapter Fail Over)
/opt/SUNWpnm/bin/pnmset
以下显示相关信息
In the following, you will be prompted to do
configuration for network adapter failover
do you want to continue ... [y/n]: y
How many NAFO backup groups on the host [1]:
Enter backup group number [0]:
Please enter all network adapters under nafo0
hme0 hme1
The following test will evaluate the correctness
of the customer NAFO configuration...
name duplication test passed
Check nafo0... 本信息表明通过测试
注意:
NAFO配置时对网线的要求较高,有时要做多次才能成功。
B、配置双机
双机配置的一般过程是,先启动双机系统,在一个节点上配置cluster和包,
检查无误后,使配置生效,然后就可以进行相应操作。
注意:
使用双机前,需要检查 smcpdg,querydg 的状态。执行如下步骤:
(1) 在两个节点分别执行:
# vxdg list
应该只看到 rootdg ,不能看到 smcpdg 和 querydg。
(2) 如果上以步操作看到 smcpdg 或 querydg,需要检查IDS是否在运行(Online)。
如果在运行,先终止IDS运行,然后使用 vxdg deport 放弃对 Disk Group 的控制。
====================
双机配置的一般过程是,先启动双机系统,在一个节点上配置cluster和包,检查无误后,使配置生效,然后就可以进行相应操作。
注意:
使用双机前,需要检查 smcpdg, querydg 的状态。执行如下步骤:
在两个节点分别执行:
# vxdg list
应该只看到 rootdg ,不能看到 smcpdg 和 querydg。
如果上以步操作看到 smcpdg 或 querydg,需要检查IDS是否在运行(Online)。如果在运行,先终止IDS运行,然后使用 vxdg deport 放弃对 Disk Group 的控制。
对双机系统进行配置
在1号机运行#scadmin startcluster smcp01 smcp。
待1号机双机软件起来之后,在2号机运行#scadmin startnode,将其作为节点加入双机
对双机系统上逻辑机的配置
逻辑机与应用程序对应,是双机系统管理应用程序的方式,每个逻辑机在双机系统上只对外提供一个IP地址。
================================================
(2)配置cluster
仅仅在一台主机上运行
#scconf iin -L scpwork -n smcp02,smcp01 -g scpdg -i hme0,hme0,scpwork -m
注意:
该命令格式为:
scconf -L -n ,
-g -i 公网网口1> 公网网口1>
-m
其中 的顺序决定了该逻辑机在node1 上是主用,在node2上是备用。
备注:这里的逻辑机的主机名对应的浮动IP地址必须要在/etc/hosts文件中配置。
在每台机器上都要建立管理文件系统
# scconf iin -F scpwork scpdg
注意:
该命令格式为:
scconf -F
在 2 号机上运行配置逻辑主机querywork
#scconf iin -L smpwork -n smcp01,smcp02 -g smpdg -i hme0,hme0,smpwork -m
建立管理文件系统
# scconf iin -F querywork querydg
注册双机
hereg -u querywork
query.register
hereg -u smcpwork
smcp.register
C、配置应用程序
/etc/opt/SUNWcluster/conf目录
可以通过ccd.datatbase和smcp.cdb两个文件查看双机基本配置和cluster的信息,
不要去手工改动这些文件,让系统去维护它们。
其中ccd.database有专门的守护进程维持该文件在两节点上的一致。
/opt/SUNWcluster/ha目录
该目录下包含了smcp和query两个子目录。smcp目录存放smcp部分的Data service
相关的配置文件和执行脚本,其中smcp.config文件记录了smcpwork的基本配置,
smcp.register用来注册smcpwork,其它的文件是启动、停止和监测smcpwork的运行脚本。
query目录存放query部分的Data service相关的配置文件和执行脚本,其中query.config
文件记录querywork的基本配置,query.register用来注册querywork,其它文件
是必需的运行脚本。 在把这两个Data service加入cluster时,必须分别通过hareg
命令来进行注册,这些步骤已在安装时通过执行smcp.register和query.register完成。
备注:再conf目录下的文件ccd.database如果两台机器不一致的话,就会导致双机不能
正常的切换。
D、双机配置的检验
(1) 先在主机上运行#scadmin startcluster smcp01 smcp
(2) 等待主机双机软件运行起来后在备机上运行
#scadmin startnode
(3) 在两台主机运行df -k 及ifconfig -a检验是否有错,运行hastat查看HA状态,
可看到hme0捆绑了smcp,query 应用的浮动IP:
hme0 .... 129.9.168.101
hme0:1 .... 129.9.168.120
hme0:2 .... 129.9.168.140
(4) 用haswitch命令进行切换实验,将逻辑主机smcpwork 由物理主机smcp01上切换到物理主机smcp02上。
# haswitch smcp02 smcpwork
要查看是否切换成功,则有以下方法:
在主机 smcp02上用df -k查看磁盘资源。如果显示信息有以下内容,则说明切换成功:
/dev/vx/dsk/smcpdg/smcpdg-stat
在主机 smcp02上用 ifconfig -a 查看 ip 地址,若逻辑主机smcpwork的IP地址129.9.169.120
此时已绑定在hme0网卡(即公网的主网卡)上,则说明切换成功。
(5) 将/opt/SUNWcluster/bin/xps_check覆盖该目录下的db_check
用get_node_status检验双机的状态
smcp02>get_node_status
sc: included in running cluster
node id: 1
membership: 0 1
interconnect0: selected
interconnect1: up
vm_type: vxvm
vm: up
db: up
17、SUN Netra T 1125头次安装的时候如何来设置Terminal Concentrator。
=====================================
在TELLIN SMP 的SUN Netra T1125 标准配置中,主机为不带显示卡和显示器的SUN 服务器,
因此使用终端集线器将两台主机上控制台(Console)信号接出到监控台上显示。由于在
Solaris没有启动前,无法对主机进行控制,必须先设置终端集线器。如果Terminal Concentrator
(简称TC)已经设置好,则可以不用重设。
下面给出终端集线器的配置步骤。终端集线器一经配置完成就无须每次开机后再次配置,
以下的配置过程假设 TC 的IP 地址为 129.9.168.23,子网掩码为 255.255.255.0。
(1) 用一台Sun工作站,用RS232玆J45电缆连接主机的串口A和终端集线器的 端口1。
在工作站/etc/remote文件中加上:
a:dv=/dev/term/a:br 9600:el=^C^S^Q^U^D:ie=%$e=^D:el=^C^S^Q^U^D:ie=%$e=^D:
(2) 在ROOT用户下键入: tip a
(3) 正确连接终端集线器和公网
(4) 将终端集线器上电
(5) 按一下终端集线器的Test键,Test指示灯亮并进入测试模式。注意:应当在电源灯亮后立即按
Test键,不能等到其进入正常运行态,相当于计算机中按"DEL"进入设置状态。
完成测试后,正确的各指示灯状态如表2-2所示。
表2-2 终端集线器的指示灯
灯名 Power Unit Net Attn Load Active
颜色 Green Green Green Amber Green Green
状态 ON ON ON OFF OFF 慢闪
(6) 在SUN工作站上将出现monitor::提示符,使用addr命令配置TC的IP和子网屏蔽码
monitor:: addr
输入IP: 129.9.168.23
输入子网屏蔽码: 255.255.255.0
(7) 退出tip应用程序
在monitor::提示符下:
monitor:: boot
monitor:: ~.
( 关掉终端集线器电源并重新开机,若用PC机 能 telnet 上去,
即验证了上述配置的正确性。此时对终端集线器的各端口进行配置:
telnet 129.9.168.23
Trying 129.9.168.23...
Connected to 129.9.168.23.
Escape character is "^]".
Enter Annex port name or number: cli
annex: su (切换到超级用户状态)
Password: 此处键入TC的IP地址
annex admin
Annex administration MICRO-XL-UX R7.0.1, 8 ports
admin : set port=1-8 type dial_in imask_7bits Y
You may need to reset the appropriate port, Annex subsystem or
reboot the Annex for changes to take effect.
admin : set port=2-7 mode slave
You may need to reset the appropriate port, Annex subsystem or
reboot the Annex for changes to take effect.
admin : quit
annex boot
bootfile:
warning:
*** Annex (129.9.168.23) shutdown message from port v1 ***
Annex (129.9.168.23) going down IMMEDIATELY
Connection closed by foreign host.w
安装完毕,撤消1口的串口线。
以上操作过程中可键入"?"或"help"出现帮助,在当前工作站上,
可用使用PC机的超级终端等程序对TC进行设置。
===================================
18、查看物理磁盘的信息
用一下命令查看物理磁盘是分配给哪个逻辑卷组。
#vxdisk list
DEVICE TYPE DISK GROUP STATUS
c0t0d0s2 sliced - - error
c0t0d0s7 simple c0t0d0s7 rootdg online
c0t8d0s2 sliced - - error
c1t1d0s2 sliced c1t1d0 smcpdg online
c1t2d0s2 sliced - - online
c1t3d0s2 sliced c1t3d0 smcpdg online
c1t4d0s2 sliced - - online
c1t6d0s2 sliced - - online
c2t1d0s2 sliced c2t1d0 smcpdg online
c2t2d0s2 sliced - - online
c2t3d0s2 sliced c2t3d0 smcpdg online
c2t4d0s2 sliced - - online
c2t6d0s2 sliced - - online
19、SUN的小型机的内核参数的修改/etc/system
set shmsys:shminfo_shmmax=268435456
set semsys:seminfo_semmni=4096
set semsys:seminfo_semmns=4096
set semsys:seminfo_semmnu=4096
set semsys:seminfo_semume=64
set semsys:seminfo_semmsl=100
set shmsys:shminfo_shmmin=100
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=100
20、SUN双机运行的日志
cluster日志记在 var/adm/messaage 中,如果cluster运行中出现故障,
我们可以查看该文件以帮助定位问题。另外,注意观察控制台屏幕上的消息。
cluster运行时的错误和告警信息,包括定时监测的结果,通常会实时的显示到控制台上。
21、如何使用光驱
A、如何利用光驱启动或者安装
先在主机上同时按住stop和A键,即是:stop+A,这样进入OK命令环境;
再在OK状态下输入boot cdrom则可以进入光盘启动了。
B、如何读光驱的内容
将光盘塞入光驱中,会自动挂接的
df -k看看光盘挂接在哪个目录下面了,
然后进入该目录就可以访问到光盘中的内容了。
22、如何使用终端集线器对SUN双机进行console的功能访问
修改/etc/default/login文件
将CONSOLE=/dev/console一行修改为
CONSOLE=/dev/console
否则只能通过TC来登录主机,其它方式无法登录。
23、关闭主机的命令
#shutdown --
24、如何利用远程磁带机来备份文件
假设两台机器smcp01和smcp02,只有在第二台机器上才有磁带机,
那么第一台机器要通过如下的方式来使用第二台机器的磁带机:
写:
#tar cvf - /tmp/yqx | rsh smcp02 dd of=/dev/rmt/0m
如果执行不成功则先设置:
#obs=20b (20个block)
读:
#rsh smcp02 dd if=/dev/rmt/0m | tar tvf -
如果执行不成功,就先设置:
#bs=20b
25、如何查看当前的网络子网、网络的掩码是多少
1)查看子网
#netstat -in
查看hme0对应的:
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
hme0 1500 172.0.8.0 172.0.8.68 3430395 0 1134355 0 0 0
可知子网就是172.0.8.0
2)查看掩码
查看/etc/netmasks就可以了
3)查看地址
#ifconfig -a
或者查看/etc/hostname.hme0
注意:有些机器上的网卡的物理名字是le0。
26、如何从cluster中删除一个逻辑机呢?
1)先将逻辑机上的应用进行去注册
hareg -n scpwork;
hareg -u scpwork;
2)再将应用从逻辑机上删除
scconf tellincluster(cluster名) -s -r scpserv(应用名) scpwork(逻辑机名)
3)最后将逻辑机从cluster中删除
方法一)用scinstall来选择菜单change/logic hosts/remove 来删除
方法二)直接用命令scconf iin -L scpwork -r
备注:用scinstall命令可以查看到所有的关于sun双机配置的信息。
27、sun的逻辑卷组、逻辑卷的创建总结步骤
SUN:Volumn manager 简称VM,在此环境下永久性修改smcpdg/querydg等磁盘卷组的用户属性及
读写权限的时候,不能用chown和chmod来修改的,只能用vxedit来修改。
补充:
初始化物理磁盘:vxdisksetup -i c1t2d0
vxdisksetup -i c2t2d0
创建卷组: vxdg init smpdbdg smpdbdg1=c1t2d0
vxdg -g smpdbdg adddisk smpdbdg2=c2t2d0
创建卷组挂接的文件系统:
vxassist -g smpdbdg -U fsgen make smpdbdg-stat 2m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror smpdbdg-stat layout=nostripe smpdbdg2
newfs /dev/vx/rdsk/smpdbdg/smpdbdg-stat
创建逻辑卷:
vxassist -g smpdbdg -U gen make lv_rootdbs 128m layout=nolog smpdbdg1
vxassist -g smpdbdg mirror lv_rootdbs layout=nostripe smpdbdg2
修改卷组权限:
vxedit -g smpdg -v set user=smp group=smp lv_smp
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_rootdbs
查看卷组激活情况:vxdg list
导入卷组:vxdg import smcpdg
激活卷组:vxvol -g smcpdg start all
去激活卷组:vxvol -g smcpdg stop all
28、sun双机配置时关于自动启动双机的配置
为了保证SMCP双机在异常情况下可以在双机重新启动后自动拉起cluster,
SUN机型:把双机系统的自启动脚本S99startcluster拷贝
到系统的/etc/rc3.d目录下。此脚本包含下述内容,
其中通常需要根据现场情况进行修改的项目有:
LOCALNODENAME、 REMOTENODENAME、 CLUSTERNAME
if [ $LOCALNODENAME = "smcp01" ]; then
REMOTENODENAME="smcp02"
# LOCALID=0
# REMOTEID=1
else
REMOTENODENAME="smcp01"
# LOCALID=1
# REMOTEID=0
fi
CLUSTERNAME=smcp-cluster
29、sun的总段上乱码的处理
当在终端窗口上进行输入字符的时候,出现了乱码的时候,这个时候有
两种解决办法:
1)敲打del
2) Ctrl + (向左的删除键)
30、查看一个逻辑卷组下面有哪些物理磁盘
root@smp2 # vxdg list smpdbdg
Group: smpdbdg
dgid: 1035450560.1072.smp2
import-id: 0.1071
flags:
copies: nconfig=default nlog=default
config: seqno=0.1027 permlen=3447 free=3445 templen=2 loglen=522
config disk c1t0d0s2 copy 1 len=3447 state=clean online
log disk c1t0d0s2 copy 1 len=522
30、sun双机的维护命令
#scinstall
命令可以进行一系列的sun双机的维护,如:
Assuming a default cluster name of smp
Checking on installed package state
....................
============ Main Menu =================
1) Install/Upgrade - Install or Upgrade Server
Packages or Install Client Packages.
2) Remove - Remove Server or Client Packages.
3) Change - Modify cluster or data service configuration
4) Verify - Verify installed package sets.
5) List - List installed package sets.
6) Quit - Quit this program.
7) Help - The help screen for this menu.
Please choose one of the menu items: [7]:
31、如何删除逻辑卷
vxedit -g scpdbdg -fr rm 逻辑卷名
32、修改/etc/opt/SUNWcluster/conf/hanfs/vfstab.scpwork的文件系统
33、关于SUN小型机中创建用户注意
有时候创建好用户了之后,我们又会将它删除,正确的操作应该是userdel 用户名来删除。
但是有时候可能会被工程师直接从/etc/passwd中删除,这个时候如果再来用useradd添加同名用户的时候,
系统会提示添加失败,这个时候必须要注意将/etc/shadow文件中的该用户的配置行也要删除,删除以后让
/etc/shadow文件和/etc/passwd文件中的用户保持一致,这样就又可以用useradd来添加了。
34、如何实现一个用户属于多个用户组呢?
35、查看swap空间
#swap -s
eg:
total: 76552k bytes allocated + 17184k reserved = 93736k used, 296608k availabl
boldeagle (2007-10-09 09:21:18)
space_zm (2007-10-11 11:01:22)
jho11 (2007-10-12 18:48:35)