老饿鱼的地盘

原来什么都不想要

用户操作
[即时聊天] [发私信] [加为好友]
老饿鱼ID:laoeyu
77668次访问,排名1285好友0人,关注者2
laoeyu的文章
原创 47 篇
翻译 0 篇
转载 2 篇
评论 65 篇
laoeyu的公告

OpenSolaris上海用户组链接



最近评论
mohroq:wow gold,
dawnguan123:谢谢 很有用
hitprince:哇塞,Solaris 都用到美国战舰上啦,佩服佩服,用机会试试Solaris
Hrolf:有兴趣的可以查一下SecureComputing公司的SecureOS的历史。SecureOS也是BSD改过来的。并且厂方宣称从没有公开的漏洞被发现。
zhujinjinjin:不错
文章分类
收藏
    相册
    OpenSolaris User Group
    Blog
    Solaris中文FAQ
    xinfeng的blog
    内核空间、用户空间、生活空间
    张欢的共享空间
    老板的blog
    老饿鱼的官方地盘
    芋头的故事
    Solaris软件下载
    BlastWave
    Solaris Companion CD
    Solaris Packages Archive
    Sunfreeware
    下载Solaris 10
    Solaris社区
    ChinaUnix Solaris论坛
    csdn社区Solaris板块
    OpenSolaris
    OpenSolaris上海用户组
    Solaris中文论坛
    Solaris文档
    Solaris 10 官方文档
    Solaris 10 系统管理员文档
    Solaris中文FAQ
    Solaris开发者文档
    Sun Studio 11 文档
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Solaris中文FAQ收藏

    新一篇: WSDP 2.0产生的WebService类在Java Application Server 9下的问题 | 旧一篇: SUN CEO 斯考特·麦克里尼的印象

    最近花了一些时间在写Solaris中文FAQ,现在补充的差不多,总共有60多条,涵盖了新手以及一些我们常见的问题。基本上我的补充告了一个段落,复制一份在此,作为一个milestone。

    首先感谢oliver, 他先开始了这个项目,并是主要的创作者。用wiki的方式来维护FAQ,非常合适,一个很好点子。同时也欢迎大家一同创作,和大家分享使用Solaris的经验和技巧。




    OpenSolaris/Solaris中文FAQ

    Wikipedia,自由的百科全书

    维护者: oliver laoeyu 


    本文来自: OpenSolaris中国社区

    URL: Solaris中文FAQ

    声明: 本文可自由拷贝、分发、修改及再创作;

    任何问题/回答/建议/勘误请mail至讨论组以帮助和回馈社区;

    讨论组: opensolaris-chinese-faq AT googlegroups.com

    注:

    1. 本文档只覆盖Solaris 9及以后的平台上的常见问题
    2. S9/10/11 分别对应目前Solaris的发行版本9/10/11
    3. x86/x32/x64/Sparc 分别对应x86包括32和64位/IA32专有/AMD64或EMT64位专有/Sparc等特定平台


    目录

    [隐藏]

    一般讨论

    OpenSolaris和Solaris的区别?

    简单说,所以OpenSolaris是一个的开源项目,而Solaris是Sun公司的基于OpenSolaris推出的一个自己的产品。

    Solaris和OpenSolaris的关系和Redhat和Linux的是类似的。

    OpenSolaris是一个开源项目包括了以CDDL为License的OpenSolaris代码,OpenSolaris开发组织, 还有OpenSolaris网站。 而Solaris操作系统是Sun公司的一个产品,Solaris从Solaris 10(2005)后的以后版本都将基于OpenSolaris的代码和技术。Solaris也是免费下载,Sun公司提供相应的service packages和regular updates。

    Solaris有那些主要版本?

    Solaris最新正式版本是10。以前的还有2.5/2.6/7/8/9等。

    类似于Windows的Service pack,Sun还会定期推出基于主板本之上的Update版本。例如,Solaris 10的第一个Update版本是Solaris 10 update 1。

    Solaris按支持平台可分为x86和Sparc版本,其中x86版本支持32位和64位。Sparc也有32(较早的机器)和64位之分。

    Sun公司还推出Solaris Enterprise System。Solaris Enterprise System是一个免费企业级解决方案套件:除了包含Solaris 10,还有Java Enterprise System,开发工具(Sun Studio, Netbeans, Sun Java Studio Creator, Sun Java Studio Enterprise), 桌面软件和N1管理软件。

    目前Solaris开发版本是11,项目代号是Nevada,(美国西部内陆州-内华达州)。

    每月5号,Sun会发布一个当前Solaris开发版本叫做Solaris Express。目前的Solaris Express来自于Solaris 11最新的较稳定的版本,其中包含了Solaris最新的功能和特性。该产品主要针对合作伙伴、开发者和希望使用最新技术的用户。Sun公司也对该产品提 供一定支持。

    Solaris Nevada的核心部分,ON(即OS&Network)和JDS(Java Desktop System)也作为OpenSolaris开放,目前OpenSolaris和Nevada的代码保持同步。

    OpenSolaris也出现了很多衍生版本,如PolarisNexentaSchillixBelenix。其中Polaris已经支持了IBM的PowerPC平台。

    Sun OS和Solaris有什么区别?

    简单得说,Sun OS是Solaris的其中一个部分。
    Solaris是SOE - Solaris Operating Environment的缩写,它包括以下主要部件:

    1.SunOS - 系统内核 (版本号是5.x)
    2.Windowing - 桌面环境JDS/CDE

    OpenSolaris的版本有哪些?

    OpenSolaris出现了很多衍生版本,如PolarisNexentaSchillixBelenix。其中Polaris已经支持了IBM的PowerPC平台。

    OpenSolaris是GPL的吗?

    OpenSolaris和GNU/Linux不同,它是以CDDL License发布的。
    CDDL是一种新的Open Source的License,与GPL相比,它的条款更宽松,更具有优越性。
    关于CDDL的细节,你可以访问:CDDL License FAQ

    学习OpenSolaris/Solaris有哪些可用的资源?

    OpenSolaris中文wiki社区有专门的文档项目来收录OpenSolaris学习和研究的相关资源:

    http://wiki.gceclub.sun.com.cn/index.php/Opensolaris_resource

    系统安装

    如何得到和安装Solaris?

    Sun的官方站点提供Solaris 10 免费下载,有DVD和CD格式:http://www.sun.com/software/solaris/get.jsp (服务器在国外), 需要Sun Online Account账号(免费注册)。

    Sun的中国技术社区gceclub也提供Solaris 10 免费下载http://gceclub.sun.com.cn/download.html (服务器在国内),需要gceclub Account账号(免费注册)。

    安装方法参考这个网页http://blog.gceclub.sun.com.cn/index.php?op=ViewArticle&articleId=121&blogId=4 你可以选择中文安装。

    安装Solaris对硬件有什么要求?

    Solaris 10的对硬件配置最低标准是:

    256MB的内存 (如果使用PXE启动,需要512MB)

    2G的硬盘空间

    120MHZ的X86(X64)的芯片或者250MHZ的SPARC芯片

    DVD或者CD-ROM驱动器


    安装Solaris X86不能识别网卡怎么办?

    1.确认你的网卡型号,从而得到网卡的vendor id:

    主板/硬件手册或者windows设备管理器都能得到设备的厂商名称,然后到PCI设备的数据库去搜索相应的vendor id。

    推荐站点:http://pci-ids.ucw.cz

    2.通过vendorid确认网卡的devide id:

    # prtconf -vp | grep <网卡的vendor id>

    得到可能的devideid后到PCI设备的数据库得到准确的设备型号。

    推荐站点:http://pci-ids.ucw.cz/


    3.确认vendorid和deviceid后,尝试Solaris系统自带的驱动

    寻找和系统内和自己device id近似的驱动名:

    # grep vendorid /etc/driver_aliases

    需要确认设备的厂商和型号是否与找到的驱动相近,可以再次利用PCI设备的数据库。

    如果可以确认,可以尝试加载该驱动:

    # devfsadm
    # add_drv -i '"vendorid,deviceid"' <驱动名>


    4.寻找其它网卡驱动

    1) 第三方网卡驱动列表:http://homepage2.nifty.com/mrym3/taiyodo/eng/index.htm
    2)HCL的network列表:http://www.sun.com/bigadmin/hcl/data/sol/
    3) 网卡厂家的网站。例如,Broadcom的网站就有其Solaris平台的驱动下载
    4) Solaris x86驱动的资源:http://solaris-x86.org/software/drivers/
    5)Sun DryDog参考:http://www.sun.drydog.com/faq/6.html#6.7
    6) Google
    7) 发邮件到OpenSolaris社区求助,最好提供prtconf -vp的输出和具体网卡型号

    安装Solaris X86不能识别声卡怎么办?

    1.确定你的声卡型号:通过主板/硬件手册或者windows设备管理器。

    2.Solaris10目前支持audioi810和audiovia823x:

    audioi810:主板集成AC97的音频控制器,包括Intel ICH/ICH0/ICH2/ICH4/ICH5芯片组(i810/i815/i845e/i850/i855pm/i865/440mx)或者兼容芯片 组(nVidia nForce MCP, SiS7012, AMD-768, AMD-8111).

    audiovia823x:主板集成AC97音频控制器,包括VIA芯片组(VT8233/VT8235,Apollo KT266/ KT266A, Apollo Pro266/ Pro266T).

    目前可自动识别的vendorid,deviceid如下:

    # grep audio810 /etc/driver_aliases
    audio810 "pci1022,746d"
    audio810 "pci8086,2485"
    audio810 "pci8086,24c5"
    audio810 "pci8086,24d5"
    audio810 "pci8086,266e"
    audio810 "pci10de,6a"
    audio810 "pci10de,da"
    audio810 "pci10de,ea"
    audio810 "pci10de,59"
    # grep audiovia823x /etc/driver_aliases
    audiovia823x "pci1106,3059"

    如果你的声卡属于audioi810和audiovia823x类型,但是没有自动被识别出来,则可以通过prtconf -vp找到声卡的vendorid,deviceid,然后尝试以下命令:

    # devfsadm
    # add_drv -i '"vendorid,deviceid"' <audio810|audiovia823x>

    3.寻找其它声卡驱动

    如果不属于udioi810和audiovia823x,请查看第三方驱动:

    1) 第三方声卡驱动列表:http://www.tools.de/solaris/audio/beta/
    2)HCL的声卡列表:http://www.sun.com/bigadmin/hcl/data/sol/
    3) Solaris x86驱动的资源:http://solaris-x86.org/software/drivers/
    4)Sun DryDog参考:http://www.sun.drydog.com/faq/6.html#6.7
    5) Google
    6) 发邮件到OpenSolaris社区求助,最好提供prtconf -vp的输出和具体网卡型号

    如何让安装一个Solaris/Windows XP/Linux共存的操作系统?

    1.安装Windows XP

    2.安装Linux

    安装完Linux后,Grub一般都会自动设置好启动选项,达到Windows和Linux双系统。 察看/boot/grub/menu.lst,找到启动Linux的几行配置,类似如下:

    title           Ubuntu, kernel 2.6.12-10-386
    root (hd0,1)
    kernel /vmlinuz-2.6.12-10-386 root=/dev/hda3 ro quiet
    initrd /initrd.img-2.6.12-10-386]]

    记下这几行

    3.安装Solaris 10 1/06 x86

    Soalris 10 1/06也用grub引导,但安装好后自动的配置只有Solaris和Windows的选项,不能引Linux,需手工修改grub的配置文件。

    4.修改grub的配置文件

    进入Soalris系统,编辑/boot/grub/menu.lst,将第3步中记下的几行加入,保存。 重新启动,grub即可引导Solaris,Linux和WindowsXP。


    参考于Multi-Booting the Solaris 10 OS, Linux, and Microsoft Windows on a Laptop

    VMware 5.5版本上,Solaris安装停止在skipped interface pcn0就不动了?

    [x86]: 大概是Solaris显卡检测的问题,引导的时候,安装方式那里选择文本方式安装即可。

    安装后,显示分辨率太低,如何调整分辨率啊?

    [X86] 可以使用kdmconfig. 如果你不熟悉Xorg的Xserver,你可以选择使用Xsun,接着该命令会引导你设置显卡,分辨率等。 Xorg的Xserver,就需要你另外配置xorg.conf或者通过使用xorgconfig命令来配置。

    使用/管理/配置

    Solaris下有PDF阅读器吗?

    Solaris Express on sparc集成了Acrobat Reader,但是最新的Acrobat Reader目前不支持Solaris x86。

    不过有一个4.05版 可以在Solaris x86上,看一般的PDF文档和中文都没有问题:

    http://download.adobe.com/pub/adobe/acrobatreader/unix/4.x/sunx86-ar-405.tar.gz

    http://download.adobe.com/pub/adobe/acrobatreader/unix/4.x/chsfont.tar.gz


    Solaris有电子词典吗?

    如果有SUNWstardict,就运行:

    /usr/bin/stardict

    更多中文词典:http://stardict.sourceforge.net/Dictionaries_zh_CN.php

    如何查看OpenSolaris/Solaris的版本信息?

    通常的“uname -a"命令就可以知道Solaris的版本:
    想知道是哪一个Solaris Update版本,可以查看/etc/release文件。
    对于曾经使用过Opensolaris的BFU升级的用户,应该查看/etc/motd文件。


    如何查看系统内核是32位的还是64位的?

    isainfo -b


    如何查看系统中CPU的数目?

    用psrinfo(1M)就可以查看。由于多内核/多线程技术的广泛采用,要查出物理CPU的数目可以使用-vp参数,例如:

    # psrinfo -vp
    The physical processor has 32 virtual processors (0-31)
    UltraSPARC-T1 (cpuid 0 clock 1000 MHz)

    UltraSPARC-T1的CPU共有8内核,每内核4个线程,因此如果单用-v参数看到的CPU数目是32个,而不是1个。


    为什么不能在/home下创建目录?

    Solaris的用户目录应该创建在/export/home下,不建议直接使用/home。

    这是因为Solaris的/home目录是由automounter控制的,只有automounter可以在这个目录下创建文件。如果不 希望automounter管理/home目录,可以在删除/etc/auto_master文件中包含"/home"的那行,并且运行 automount -v让设置生效,当然reboot也可以。


    如何查看solaris下安装了有几块硬盘?

    format命令可以看有几块物理盘

    Searching for disks...done
    AVAILABLE DISK SELECTIONS:
    0. c0t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@0,0
    1. c0t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@1,0
    2. c0t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@2,0
    3. c0t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@3,0
    4. c2t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@0,0
    5. c2t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@1,0
    6. c2t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@2,0
    Specify disk (enter its number): 0
    selecting c0t0d0
    [disk formatted]

    随便选一个盘 再按Q退出就可以了


    如何在Solaris下使用USB存储设备?


    [S11|S10]: Solaris可以自动检测并mount USB存储设备上的文件系统,在CDE和JDS下会自动在桌面上给出U盘的文件夹,不过要等一会儿,大概半分钟的时间不到。

    如果系统没有自动识别,主要有以下2种情况:

    1.较早版本的Solaris的vold不能立即检测热插拔,需要重新启动vold才可以识别:

    将U盘插入USB口,再重新启动vold,vold会自动mount usb设备:

    # /etc/init.d/volmgt stop
    # /etc/init.d/volmgt start

    /rmdisk/rmdisk0可能就是被mount上的U盘,如果不是,请依次检查/rmdisk/rmdisk1,/rmdisk/rmdisk2...

    2.直接查询设备路径,mount该设备:

    如果该USB设备已经存在文件系统,且Solaris支持该文件系统,可以直接mount该文件系统。 以FAT32文件系统为例,首先要了解USB设备的路径:

    # rmformat
    Looking for devices...
    1. Logical Node: /dev/rdsk/c3t0d0p0
    Physical Node: /pci@0,0/pci1028,151@1d,7/storage@4/disk@0,0
    Connected Device: HTS42404 0M9AT00
    Device Type: Removable

    然后,直接mount该设备:

    # mount -F pcfs /dev/dsk/c3t0d0p0:c /mnt

    卸载U盘前,需要确保该mount目录没有正在使用:

       # umount /mnt
    # eject rmdisk0

    或者,

       # umount /mnt
    # eject /dev/rdsk/c3t0d0p0


    如何察看Solaris系统的内存大小及使用情况?

    [S9|S10|S11]: 看物理内存用prtconf,在x86和sparc都通用的:

       # prtconf -vp | grep Mem
    Memory size: 2047 Megabytes

    再有就是vmstat了:

       # vmstat 1

    看vmstat的输出时,从第2行开始看,如果sr列数值比较大,就表明内存紧张。

    Solaris 9开始,可以使用mdb来查看内存:

       # echo ::memstat | mdb -k

    如需要看具体那个进程占用内存的情况可以使用:prstat -a 另外还有GNU的top命令(top需要从www.sunfreeware.com上下载安装)

    [S8]:Solaris 8的mdb命令没有::memstat命令,需要从www.solarisinternals.com下载,然后运行如下命令装入::memstat:

       # mdb -k 
    >::load memory
    >::memstat

    就可以看你真实的物理内存的占用情况了。


    如何修改主机名?

    新手可以使用sys-unconfig

    也可以修改以下文件:

    /etc/inet/hosts
    /etc/hostname.xxx(xxx代表你的网卡的名称)
    /etc/nodename
    /etc/inet/ipnodes(ipv6协议使用的主机文件)

    然后重新启动即可。


    如何修改IP地址?

    新手可以使用sys-unconfig

    也可以修改以下文件:

    /etc/hosts
    /etc/hostname.xxx
    /etc/defaultrouter(默认网关)
    /etc/netmasks(掩码)

    然后重新启动系统,或者用ifconfig 来添加临时的IP地址.用route add default xxx.xxx.xxx.xxx来添加临时的默认网关.


    DNS客户端的设置

    1. /etc/resolv.conf文件,用于记录DNS服务器的地址和域名

    若文件不存在就创建一个新文件。

    # vi /etc/resolv.conf
    nameserver 192.168.2.1

    2./etc/nsswitch.conf文件,用于记录主机名的搜索顺序等信息

    找到hosts:起始的行,将其修改为:

    vi /etc/nsswitch.conf
    ................
    hosts: files dns


    DHCP客户端设置

    创建两个空文件,<interface>是网卡适配器的名字,这两个文件用于系统启动时自动启动dhcp。

    # touch /etc/hostname.<interface>
    # touch /etc/dhcp.<interface>

    网卡适配器的名字的我们可以通过ifconfig -a 或者文件/etc/path_to_inst得到。 如果需要立即使用dhcp的话,可以执行一下命令:

    # ifconfig <interface> dhcp start


    网络配置生效的问题

    配置项 临时使用重启失效 永久生效需要重启
    主机名 hostname <new name>
    不要在Window(CDE, JDS)界面中使用
    /etc/nodename
    /etc/hostname.<Interface>
    /etc/inet/hosts
    IP地址 ifconfig <Interface> plumb
    ifconfig <Interface> <IP> up
    /etc/inet/hosts
    网络掩码 ifconfig <Interface> <netmask> up /etc/netmasks
    Gateway网关 route add default <IP Gateway> /etc/defaultrouter
    DHCP 客户端 ifconfig <Interface> plumb
    ifconfig <Interface> dhcp start
    touch /etc/hostname.<Interface>
    touch /etc/dhcp.<Interface>

    Solaris下如何修改mac地址?

    用ifconfig 命令即可修改mac地址,假设接口名为nge0,要将mac地址修改为0:1:2:3:4:5,可以运行如下命令:

    # ifconfig nge0 ether 0:1:2:3:4:5

    Solaris下如何给机器添加一个新硬件?

    [Sparc|X86]:添加好新硬件后,启动系统后,执行drvconfig或者devfsadm即可检测到新硬件。例如,添加新的硬盘,在硬盘加好后,执行一下drvconfig disks或者devfsadm。

    另外,可以在关机或重启系统时,设置开机检测新硬件,然后关闭电源,再添加或更换硬件。

       # touch /reconfigure;init 0

    任何时候,给重启命令制定-r选项,即可在启动时检测硬件。

       # reboot -- -r

    第三方的设备是需要相应厂家的驱动程序,可以读设备的说明书进行安装.


    [Sparc]:关掉电源添加SUN相应的设备后,启动时按住stop+A(SUN键盘),ctrl+break(PC键盘)进入OBP提示符ok下,然后boot -r
    某些支持动态配置和热插拔的硬件的Sparc服务器,可以用cfgadm和devfsadm在不停机状态下增加硬件,详见手册。

    [X86]:关掉电源添加相应的设备后,启动时输入b -r


    忘记了root密码,如何解决?

    [S10u1|S11]:新版本的Solaris系统采用grub作为引导程序,因此不需要光盘引导:

    1. 首先,在grub的菜单中选择fail safe的选项引导系统
    2. 引导后,系统会提问是否mount根分区到/a上,选择是
    3. 按照前面的方法编辑/a/etc/shadow文件,保存、重启系统。


    [S9|S10]:用solaris的software1/2光盘引导系统,修改口令即可。

    • 首先要用光盘引导系统:
    [X86]:x86没有OBP,只需要设置BIOS或者通过引导菜单,选择从CDROM上引导系统。
    [Sparc]:任何时候通过Stop+a(SUN键盘)或者ctrl+break(PC键盘)进入到OBP提示符下输入:
       ok boot cdrom -s
    • 然后,mount根分区,打开shadow文件:
       mount /dev/dsk/c0t0d0s0 /mnt (这里假设你的硬盘上的/区是/dev/dsk/c0t0d0s0)
    vi /mnt/etc/shadow
    • 最后,编辑shadow文件,把root用户的密码删除,保存文件、重新启动后,就不会有口令了。


    使用FTP时,不能以root用户登录系统,应修改什么配置文件?

    打开文件 /etc/ftpusers,如果有root,注释掉就可以了。


    使用Telnet时,不能以root用户登录系统,应修改什么配置文件?

    将/etc/default/login把CONSOLE=/dev/console该行注释掉,就可以用root远程telnet本机。


    Solaris下如何修改网卡的传输模式呢?

    用ndd /dev/hme \? 看到的link_mode是只读的不能修改.但是可以观看. ndd -get /dev/hme link_mode 1 = Full Duplex (FDX) 0 = Half Duplex (HDX)


    如何使用串口做系统控制台?


    /目录的空间满了,怎么扩容?

    这个比较麻烦.如果没有引入卷管理方式的话,扩容/一般认为不能这样做. 因为在分配柱面的地址没有办法做到. SDS上增加可以用growfs veritas上:vxresize 或者vxassist


    Solaris如何设置ADSL拨号上网?

    一、系统基本设置

    # touch /etc/ppp/pppoe.if        

    重启系统后会创建拨号相关的文件

    # touch /etc/gateways                

    重启后会添加IP路由功能

    # touch /etc/hostname.hme1        

    重启后会添加上第二块网卡,该网卡如果已经添加,那么可省去此步。通过ifconfig -a可以查看该网卡是否启用。该网卡hme1是和adsl modem相连的网卡。

    # echo "nameserver 202.96.134.133"  >; /etc/resolv.conf        

    添加上离你最近的DNS服务器,重启生效,可以在此文件中添加多个DNS server。

    # cp /etc/nsswitch.dns /etc/nsswitch.conf        

    此步骤的目的是修改/etc/nsswitch.conf,当然直接改动/etc/nsswitch.conf。

    二、PPPOE基本设置

    确认系统中已经安装上如下的软件:

    SUNWpppd - Solaris PPP Device Drivers
    SUNWpppdr - Solaris PPP configuration files
    SUNWpppdt - Solaris PPP Tunneling
    SUNWpppdu - Solaris PPP daemon and utilities
    SUNWpppdx - Solaris PPP 64-bit (ONLY needed for SPARC's with 64-bit kernels)

    如果没有,那么从solaris的第二张安装光盘盘中进行补装。有两个ppp的大软件包,选上即可。

    # reboot -- -r

    重新进入系统之后,going on.......

    # ls /dev | grep ppp           确认存在sppp和sppptun
    # grep sppp /etc/name_to_major
    sppp 146
    sppptun 147

    编辑拨号配置文件

    # vi /etc/ppp/peers/bohao        添加如下几行
    sppptun
    plugin pppoe.so
    connect "/usr/lib/inet/pppoec hme1" #hme1是与MODEM相连的网卡
    persist #自动重播
    user "USERNAME" # username
    noauth
    noipdefault
    noccp
    novj
    noaccomp
    nopcomp
    defaultroute

    存盘退出 由于你的ISP需要对你进行密码验证,所以你还要编辑一下密码文件,但是ISP可能用到的文件是/etc/ppp/chap-secrets和/etc/ppp/pap-secrets 因此分别要到这两个文件中的最后一行中追加: username * password 我要提醒的是:上行中的字段之间是TAB键分割的,而不是空格。 到此为止,配置已经结束了,接下来就是拨号。 绑定网卡

    # sppptun plumb pppoed hme1
    # sppptun plumb pppoe hme1
    # sppptun query 检查是否绑定成功
    # /usr/lib/inet/pppoec -i hme1 探测与hme1相连的ISP网卡的MAC地址信息,主要是确保物理线路是否存在问题。
    # /usr/bin/pppd call bohao bohao为/etc/ppp/peers的一个拨号配置文件。
    # ifconfig -a 验证是否出现sppp0的网口,如果网络不畅,此处可能需要等一段时间。

    可以把上述的操作简单的写成一个教本,开机自动执行。

    # vi /etc/rc2.d/S48bohao        添加如下几行
    sppptun plumb pppoed hme1
    sppptun plumb pppoe hme1
    /usr/bin/pppd call bohao

    存盘退出

    # chmod u+x /etc/rc2.d/S48bohao

    到此,服务器的拨号设置告一段落。 (转自CU网友nimysun)


    怎么让Solaris默认不启动X window?

    关闭X window自动启动

    # /usr/dt/bin/dtconfig -d

    恢复X window自动启动

    # /usr/dt/bin/dtconfig -e

    其它选项:

    # /usr/dt/bin/dtconfig --help
    Usage:
    CDE configuration utility
    /usr/dt/bin/dtconfig -d (disable auto-start)
    /usr/dt/bin/dtconfig -e (enable auto-start)
    /usr/dt/bin/dtconfig -kill (kill dtlogin)
    /usr/dt/bin/dtconfig -reset (reset dtlogin)
    /usr/dt/bin/dtconfig -p (printer action update)
    /usr/dt/bin/dtconfig -inetd (inetd.conf /usr/dt daemons)
    /usr/dt/bin/dtconfig -inetd.ow (inetd.conf /usr/openwin daemons)


    如何mount上文件系统为FAT32/PCFS/DOS的硬盘

    先创建加载点,这个目录将用于加载后加载系统的主目录。

    # mkdir /mount-point
    # mount -F pcfs [-o rw | ro] /dev/dsk/<device-name>:<logical-drive> /mount-point

    <device-name>是指硬盘的设备名。可以参考format命令的。 在Solaris X86中硬盘的设备名的通常命名方式是含有Controller,Target,Disk和Partition的信息。举个例子/dev/dsk/c0t0d0p0

    <logical-drive>是指在DOS中硬盘有英文盘符(从c到z)来区别,也可以用数字(从1到24)代表。即C盘对应1,即D盘对应2,依此类推。

    其中参数rw是指read,write,即可读写。也可用ro, o;对应只读,

    给出两个例子

    # mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c
    # mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt

    检查是否成功mount,可以同过mount命令直接得到所有加载的系统

    # mount

    unmount该文件系统,则用命令umount /mount-point
    系统关机时,会自动umount该文件系统。所以系统再次启动后,需要通过mount再次加载。不过我们可以让系统自动加载,自动加载的定义文件:/etc/vfstab 加入相应的纪录,例如

    /dev/dsk/c0d0p2:c /dev/rdsk/c0d0p2:c /wind pcfs 2 yes -

    第一项说明要加载的硬盘设备名。第二项说明相应的硬盘裸设备名,用于fsck使用。第三项说明加载点目录。第四项说明文件系统的类型。第五项用于fsck的参数。第六项说明是否在启动时候加载。最后一项定义系统mount加载时候的参数。


    如何检查硬盘坏道

    # format

    先选择硬盘,接着选择键入analyze,然后选择键入read。 或者:

    # iostat -En

    如何刻录光盘?

    Solaris 自带的cdrw工具既支持cd刻录也支持dvd刻录。常见用法:


    • 从iso文件刻录。从网上下载的光盘映象文件一般为iso格式.
    # cdrw -i /full-path/xxx.iso
    • 复制光盘:
    # cdrw -c [-m tmpdir]  会提示你换盘的。
    • 刻录一些目录文件到CD/DVD:

    这反而成了麻烦事,要创建iso文件:

    # mkisofs -o xxx.iso -J -R /full-path-data/

    建议使用-J -R 选项以同时支持Windows下的长文件名格式(Joliet)和Unix下的长 文件名格式(Rock Ridge). 然后再从iso文件刻录:

    # cdrw -i /full-path/xxx.iso
    • 抹除CD-RW的内容
    # cdrw -b fast


    如何制作光盘镜像iso文件?

    这反而成了麻烦事,要创建iso文件:

    # mkisofs -o xxx.iso -J -R /full-path-data/

    建议使用-J -R 选项以同时支持Windows下的长文件名格式(Joliet)和Unix下的长 文件名格式(Rock Ridge). 然后再从iso文件刻录:

    # cdrw -i /full-path/xxx.iso


    如何虚拟光驱,读取iso中的文件

    # lofiadm -a xxx.iso

    在系统目录/dev/lofi/中会自动多出一个目录(累计)。然后使用mount命令将给目录映射到一个本地目录,比如/mnt
    # mount -F hsfs /dev/lofi/1 /mnt


    重装 Windows后Grub失效,如何重新安装Grub

    [S10u1]: 在同一台X86机器上即安装了Solaris 1/06, 又安装了Windows,并且使用 Solaris的Grub作为引导程序。 由于某些原因不得不重装Windows,会重新覆盖 MBR,导致Grub不能使用,不能直接启动Solaris。 我们只需要 Solaris 1/06的第一张CD光盘或者DVD光盘,就可以重新安装Grub 步骤:

    1 设置机器并从Solaris 1/06光盘启动

    2 在出现Grub界面的时候,按c进入grub命令模式

    3 找到硬盘上已安装的Solaris系统的


    grub>find /platform/i86pc/multiboot

    (hd0,2,a)

    我们也可以查找另一个文件:find /boot/grub/menu.lst

    4 得到硬盘编号,将它设为root device

    例子里的(hd0,2,a),指的是第1块硬盘第三个fdisk分区中的第一个slice。

    grub>root(hd0,2,a)

    Filesystem type is ufs, partition type 0x000000bf


    5 指定boot和archive文件,启动Solaris

    grub>kernel /platform/i86pc/multiboot

    grub>module /platform/i86pc/boot_archive

    grub>boot

    如果记不住这些命令,我们可以借助menu.lst文件,其实这个文件是原grub用于启动的菜单,并含有这些启动命令,可供我们参考。 一般这个文件的位置在/boot/grub/menu.lst,我们可以使用cat显示内容。 grub>cat /boot/grub/menu.lst


    6 进入Solaris后,使用root身份安装grub

    # /usr/sbin/installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d0s0

    其中c0d0s0是指一块硬盘,该命令会将Grub文件安装到该硬盘的MBR。


    bootblk损坏,如何修复

    bootblk损坏,系统启动的时候会报出这样的错误"The file just loaded does not appear to be executable."。

    [S10]: 从光盘启动,在ok模式下输入boot cdrom -s

    ok boot cdrom -s

    [S10u1]: 从光盘启动,选择6, Single User Shell

    # mount /dev/dsk/c1t0d0s0 /a (将损坏硬盘映射成目录a, 为了版本问题,必须使用原来根系统里面的bootblk块)
    # installboot /a/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t0d0s0


    如何添加用户

    [S10]' Solaris 10带有smc的图形化工具,含有用户管理。

    # smc

    Solaris也同时提供命令用于用户管理

    添加组

    # groupadd -g 102 testgroup

    -g,指定组id,102。testgroup是组名。

    添加用户

    # useradd -g 102 -d /export/home/user1 -s /bin/bash -m user1

    配置用户密码:

    # passwd user1


    如何设置Shell环境变量

    Shell 设置 添加 显示当前值 注解
    sh NAME=value1
    export NAME
    NAME=value2:$$NAME set(internal)或者env(exported) 如果需要子进程也看到该环境变量,需要使用export
    ksh NAME=value1
    export NAME
    NAME=value2:$NAME set(internal)或者env(exported) 如果需要子进程也看到该环境变量,需要使用export
    csh setenv NAME value1 setenv NAME value2:$NAME set 不需要使用export
    bash NAME=value1 NAME=value2:$NAME set或者env 不需要使用export


    Shell的配置文件和读取顺序

    前提 Shell 配置文件1 配置文件2 配置文件3 配置文件4
    Subshell
    (直接输入sh,ksh,csh,bash命令
    或者su)
    sh        
    ksh        
    csh ~/.cshrc      
    bash ~/.bashrc ~/.inputrc /etc/inputrc  
    su -
    telnet
    ssh
    rlogin
    sh /etc/profile ${HOME}/.profile    
    ksh /etc/profile ~/.profile    
    csh ~/.cshrc ~/.login    
    bash ~/.bash_profile ~/.bash_login /etc/profile ~/.profile

    参考Rolf Kersten的Solaris OE Guide for New System Administrators


    如何安装软件包软(Package)?

    安装#pkgadd -d <pkg绝对路径名>
    察看#pkginfo #pkgchk #prodreg
    删除#pkgrm <软件包pkg名>


    如何打Patch?

    安装#patchadd
    察看#patchchk #showrev -p
    删除#patchrm


    如何打开压缩的文件?

    在solaris下,会有这么几种格式的软件:
    1) .gz结尾的文件,用gunzip或者gzip -d来解压,再用tar来解压。推荐使用GNU的gtar,/usr/sfw/bin/gtar zxvf。gtar支持长文件名,bug也较少。
    2) .tar结尾的文件,用tar xvf的格式来解压。推荐使用GNU的gtar,/usr/sfw/bin/gtar xvf。
    3) .zip结尾的文件,用unzip。
    4) .Z结尾的文件,一般用uncompress来解压。


    如何去掉文本中^M?

    # dos2unix a.txt b.txt,

    dos2unix会去掉a.txt中的^M,生成b.txt文件。


    如何运行Linux下的程序?

    Linux下的程序是不能直接运行,这是由于可执行文件格式不同。解决办法由大概有下面几种方法:

    1. 因为Linux的程序大多都是开源的,有很多社区包括Sun公司都提供Solaris平台下编译好的软件包,可以通过google搜索一下。

    2. 直接获得Linux程序的源文件,在solaris下直接编译。

    3. 通过软件虚拟,Sun提供一个lxrun软件作为中间层,来满足程序所需的linux的API,该lxrun软件含在Companion CD中, 也可免费单独下载:

    http://www.sun.com/software/solaris/freeware/

    4. OpenSolaris的BrandZ技术,通过Solaris的Container技术虚拟Linux,这个已经在OpenSolaris开源,现在这个技术还没有产品化,不过我们可以试先体验一下:

    http://www.sun.com/download/products.xml?id=44247cfd

    这里还有一个中文安装实例 http://blog.gceclub.sun.com.cn/index.php?op=ViewArticle&articleId=943&blogId=520

    5. 通过开源Xen技术:http://xen.sourceforge.net/

    6. 通过CPU模拟器 - QEMU, 可以在Solaris的qemu上安装Linux: http://www.blastwave.org/packages.php/qemu

    常用软件使用

    常用软件下载

    Web浏览器:
    Mozilla FireFox: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.1/contrib/

    邮件客户端:
    Mozilla Thunderbird: ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5/contrib/

    Acrobat: Solaris下有PDF阅读器吗?

    办公软件:
    Solaris 10自带StarOffice 7。也选择高版本的OpenOffice 2.0,该版本对应于StarOffice 8.0。

    多媒体播放器:
    RealPlayer:http://forms.helixcommunity.org/helix/builds/?category=realplay-stable

    聊天工具:
    gaim

    Solaris软件下载站点

    Sun Solaris Companion CD

    Sunfreeware

    BlastWave

    Solaris Packages Archive

    应用程序开发

    Solaris下如何安装gcc编译器?

    [S10|S11] Solaris10以后,gcc缺省安装在/usr/sfw/bin目录下。因此,只需要设置好环境变量即可:

    PATH=/usr/sfw/bin:/usr/ccs/bin:$PATH; export PATH

    [S9] 另外,还可以到大名鼎鼎的sunfreeware或者blastwave.org去直接下载二进制文件来安装


    Solaris下cc为什么不能用?

    当运行里面的/usr/ucb/cc时,提示“language optional software package not installed”。 那个cc是为了编译BSD兼容的程序的准备的脚本

    可以直接使用solaris自带的编译器:/usr/sfw/bin/gcc

    如果想要其他的版本的gcc可以到Sun的官方站点免费下载http://www.sun.com/software/solaris/freeware/

    Sun Studio 11可以免费下载 http://developers.sun.com/prodtech/cc/products/get.html


    在Solaris下编译socket程序时发生“符号参照错误”提示?

    需要确保头文件包含正确,并且指定-lsocket选项如下:

        cc [ flag ... ] file ... -lsocket -lnsl [ library ... ]
    #include <sys/types.h>
    #include <sys/socket.h>

    Linux下socket调用是在libc中实现的,因此不需要指定-lsocket;但Solaris下,由于存在两套socket库的实现:

    3SOCKET - BSD风格socket库,大多数GNU/Linux软件使用这个库

    3XNET - 标准socket库

    因此Solaris socket库并不包含在libc中,需要给链接器指定-lsocket参数。


    Python在Solaris下是默认安装的吗?

    [S10] Python在含在Solaris 10光盘中,安装的时候可以选择是否安装。

    可以通过以下方式察看是否安装:

    # pkginfo | grep Python
    GNOME2 SUNWPython The Python interpreter, libraries and utilities
    GNOME2 SUNWPython-devel The Python interpreter, libraries and utilities - develper files - platform dependent, /usr filesystem
    GNOME2 SUNWPython-share The Python interperer, libraries and utilities - platform independent files, /usr/sfw/share


    如何修改文件描述符限制?

    Solaris有两个参数控制进程可打开的文件描述符:rlim_fd_max,rlim_fd_cur。前者修改是个硬设置,修改需要权限,后者 是个软设置,用户可以limit或者setrlimit() 修改,该值最大不能超过前者。一般我们在/etc/system里修改这两个参数

    set rlim_fd_max = 65535

    set rlim_fd_cur = 65535

    内核和驱动程序开发

    Solaris是微内核操作系统吗?

    Solaris上有什么样的内核级调试器?

    [S10|S11]:主要有mdb、kmdb和dtrace。

    Solaris较早版本的内核调试器是adb和kadb。Solaris 8开始,有了mdb,Solaris 10后,kadb被kmdb取代。 除了mdb和kmdb以外,内核开发人员还可以利用强大的dtrace来调试内核。
    mdb和kmdb类似于windows的ICE或者linux的kdb。不同的是,这些都是solaris操作系统自带,不需要额外安装。
    有了这些工具,动态观察内核的状态、设置断点,修改内核数据都成为可能。

    哪里可以找到Solaris下的usb驱动程序的开发资料?

    Solaris 下的有USB DDK,具体可以参考下面的地址:

    http://developers.sun.com/solaris/developer/support/driver/usb.html

    站点上面有文档,还有USB DDK下载地址,还有USB skeleton drivers。

    另外,还有一个介绍ugen的白皮书:

    http://developers.sun.com/solaris/developer/support/driver/docs/usbups_whitepaper.html

    Solaris默认内核栈大小是多少?

    amd64的默认内核栈尺寸是5*PAGESIZE(20k),i386的是2*PAGESIZE(8k),在uts/i86pc/sys/machparam.h中定义;
    sparc的默认内核栈尺寸是3*PAGESIZE(24k),在uts/sun4u/sys/machparam.h中定义;

    OpenSolaris的内核源码中的assert()函数起什么作用?

    assert()就是断言函数。

    Solaris内核可以编译成debug版和非debug版。

    assert()只在debug版起作用,如果assert()返回失败,系统会强制因为assertion failed而panic,并将内存映象存入crash dump文件。

    这样程序员可以通过mdb来检查crash dump文件,来分析问题。

     

    发表于 @ 2006年05月20日 19:01:00|评论(loading...)|编辑

    新一篇: WSDP 2.0产生的WebService类在Java Application Server 9下的问题 | 旧一篇: SUN CEO 斯考特·麦克里尼的印象

    评论

    #dawnguan123 发表于2008-05-29 17:37:30  IP: 202.108.88.*
    谢谢 很有用
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © laoeyu